我想将以下数据库从长到宽重塑
df_long <- data.frame(
indiv_id = c(rep(1,2), rep(2,6), rep(3,4)),
value = c(sample(x = 2), sample(x = 6), sample(x = 4)),
field_id = c("A", "B", "A", "C", "D", "E", "G", "F", "B", "D", "E", "F")
)
indiv_id value field_id
1 1 1 A
2 1 2 B
3 2 6 A
4 2 1 C
5 2 5 D
6 2 4 E
7 2 2 G
8 2 3 F
9 3 4 B
10 3 1 D
11 3 2 E
12 3 3 F
我想将其转换为宽格式,如下所示(如果可能的话,使用 R 基本函数)
indiv1_id A B D E F
1 1 1 2 NA NA NA
2 2 6 NA 5 4 3
3 3 NA 4 1 2 3
我看过 acast、spread 等等……但他们都没有成功! 谢谢
reshape
基数 R
reshape(
df_long,
direction = "wide",
idvar = "indiv_id",
timevar = "field_id"
)
给予
indiv_id value.A value.B value.C value.D value.E value.G value.F
1 1 1 2 NA NA NA NA NA
3 2 2 NA 5 4 1 6 3
9 3 NA 1 NA 2 4 NA 3