我想知道如何简单地用数据集中的第二个分组变量分割数字列,然后cbind数值列。这很可能是dplyr的单独函数的简单扩展。例如,更改以下X:
Y <- rbind(2,5,3,6,3,2)
Z <- rbind("A", "A", "A", "B", "B", "B")
X <- data.frame(Y,Z)
进入
A B
2 6
5 3
3 2
然后理想地将rowMeans提取到一个新的向量中。 (如果在Z中只有一个字符,则会出现问题,因为rowmeans需要2)。
这需要基于Z中的唯一变量的数量无限扩展。例如,如果Z具有A,B和C,则最终的data.frame将需要3列。这将允许我从Z中的无数个组中捕获行均值。
提前致谢, Conal
答案 0 :(得分:1)
看起来像tidyr::spread
的工作。
library(dplyr)
library(tidyr)
X2 <- X %>%
group_by(Z) %>%
mutate(ID = 1:n()) %>%
spread(Z, Y) %>%
select(-ID)
X2
# A tibble: 3 x 2
A B
* <dbl> <dbl>
1 2 6
2 5 3
3 3 2