将列转换为特定值,然后将其作为包含其先前值的行

时间:2019-04-09 10:25:33

标签: r data-cleaning

我有一些列,其中有一些与之关联的值。 我想给每个列(a和b)提供值(1和2),然后将它们放在行中。 这是可以更好地查看转换的代码:

#Create a dataframe, let's day a and b are the name of some brands
df = data.frame(a=c(1,2,3),b=c(4,5,6)) 

# I want to assign the numbers 1 and 2 to brand a and b
df1 = data.frame(brand=c(1,1,1,2,2,2), value=c(1,2,3,4,5,6)) 

我需要一个自动执行此功能的函数:将df转换为df1 *

编辑:对于上下文,我正在为Anova测试进行此转换

1 个答案:

答案 0 :(得分:0)

如何?

library(tidyr)
library(dplyr)

df <- data.frame(a=c(1,2,3),b=c(4,5,6))

df1 <- gather(df, brand, value) %>% ## Convert columns into rows
  mutate(brand = as.numeric(as.factor(brand))) ## Convert a and b into 1 and 2