如何重新排列 data.frame

How to re-arrange a data.frame

我有兴趣在 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 但我不确定最佳路线是什么,我想重新安排的数据框相当大.

怎么样unstack(mydata, b~s):

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

你想要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