如何重新排列 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)
我确定有一种方法可以使用 mutate
或 tidyr
但我不确定最佳路线是什么,我想重新安排的数据框相当大.
怎么样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
我有兴趣在 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)
我确定有一种方法可以使用 mutate
或 tidyr
但我不确定最佳路线是什么,我想重新安排的数据框相当大.
怎么样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