Tlatwork
Tlatwork

Reputation: 1525

Transform data to data.frame with the pipe operator

Lets say i have the following data: x <- 1:2.

My desired output is a data.frame() like the following:

a b
1 2

With base R i would do something along:

df <- data.frame(t(x))
colnames(df) <- c("a", "b")

Question: How would i do this with the pipe operator?

What i tried so far:

library(magrittr)
x %>% data.frame(a = .[1], b = .[2])

Upvotes: 4

Views: 1873

Answers (1)

akrun
akrun

Reputation: 887048

After the transpose, convert to tibble with as_tibble and change the column names with set_names

library(dplyr)
library(tibble)
x %>% 
  t %>%
  as_tibble(.name_repair = "unique") %>%
  setNames(c("a", "b"))
# A tibble: 1 x 2
#      a     b
#  <int> <int>
#1     1     2

Or another option if we want to use the OP's syntax would be to wrap the code with {}

x %>%
     {data.frame(a = .[1], b = .[2])} 

Upvotes: 3

Related Questions