我有一个如下所示的数据框:
a b
1 x 8
2 x 6
3 y 3
4 y 4
5 z 5
6 z 6
Run Code Online (Sandbox Code Playgroud)
我想把它变成这个:
x y z
1 8 3 5
2 6 4 6
Run Code Online (Sandbox Code Playgroud)
但是打电话
library(tidyr)
df <- data.frame(
a = c("x", "x", "y", "y", "z", "z"),
b = c(8, 6, 3, 4, 5, 6)
)
df %>% spread(a, b)
Run Code Online (Sandbox Code Playgroud)
回报
x y z
1 8 NA NA
2 6 NA NA
3 NA 3 NA
4 NA 4 NA
5 …Run Code Online (Sandbox Code Playgroud) 假设我有一个data.frame看起来像这样的融化:
variable value
1 A -0.19933093
2 A -1.19043346
3 A -1.32248172
4 A -1.98644507
5 A -0.07930953
6 B -0.10074686
7 B 0.72451483
8 B -0.40914044
9 B 0.02913376
10 B 0.16062491
Run Code Online (Sandbox Code Playgroud)
我如何得到它:
A B
-0.19933093 -0.10074686
-1.19043346 0.72451483
-1.32248172 -0.40914044
-1.98644507 0.02913376
-0.07930953 0.16062491
Run Code Online (Sandbox Code Playgroud)
看起来微不足道,但我在回答是空白.dcast而且acast似乎没有这样做.我的目标是在较大的数据集上执行此操作,并将最终产品转换为a matrix,列名称为变量名称.我尝试玩(daply和laply融化前)没有太多运气.