根据另一列将列分为两列

时间:2019-09-20 04:33:07

标签: r dplyr tidyr

我有一个看起来如下的数据集

Original Data

我需要将其分为12列作为

Q1_Pre Q1_Post Q2_Pre Q2_Post

我可以使用代码针对单个列进行操作

   df <- TAQ %>% select(ID,Pre_Post,Q1)
df1 <- df %>% spread(Pre_Post,Q1)
names(df1)[2]<-"Q1_Pre"
names(df1)[3]<-"Q2_Post"
df1

Result for one column

我无法使用for循环或任何其他方法对所有6列进行此操作。

我尝试使用以下代码,但失败了

Q <- c('Q1','Q2','Q3', 'Q4','Q5','Q6')

for (i in 1:length(Q))
{
  df <- TAQ %>% select(ID,Pre_Post,Q[i])
  df1 <- df %>% spread(Pre_Post,Q[i])
  df2<-cbind(df2,df1)

}

0 个答案:

没有答案