如何重新安排data.frame

时间:2016-05-11 16:03:13

标签: r dataframe tidyr

我有兴趣在R中重新安排一个data.frame。跟我一起,我偶然发现了一个可重复的例子。

我有一个名义变量,可以有两个值中的一个。目前,这个名义变量是一列。相反,我希望有两列,代表这个名义变量可以具有的两个值。这是一个简单的数据框架。 S是名义变量,其值为T和C.

n <- c(1,1,2,2,3,3,4,4)
s <- c("t","c","t","c","t","c","t","c")
b <- c(11,23,6,5,12,16,41,3)
mydata <- data.frame(n, s, b)

我宁愿拥有一个看起来像这样的数据框

n.n <- c(1,2,3,4)
trt <- c(11,6,23,41)
cnt <- c(23,5,16,3)
new.data <- data.frame(n.n, trt, cnt)

我确信有一种方法可以使用mutatetidyr,但我不确定最佳路线是什么,我想重新安排的数据框非常大。

2 个答案:

答案 0 :(得分:3)

unstack(mydata, b~s)

怎么样?
   c  t
1 23 11
2  5  6
3 16 12
4  3 41

答案 1 :(得分:3)

你想要spread

library(dplyr)
library(tidyr)    
new.data <- mydata %>% spread(s,b)

  n  c  t
1 1 23 11
2 2  5  6
3 3 16 12
4 4  3 41