我想使用我的ID列转换我的数据框,在一个ID下创建新变量。
>Data1
ID Object ITEM Time Value
1 a 123 7pm 12.0
1 b 234 8pm 4.0
1 c 345 7pm 1.0
2 a 123 7am 6.0
2 b 234 8pm 8.1
2 c 345 12pm 9.7
ID Object1 ITEM1 Time1 Value1 Object2 ITEM2 Time2 Value2 Object3 ITEM3 Time3 Value3
1 a 123 7pm 12.0 b 234 8pm 4.0 c 345 7pm 1.0
2 a 123 7am 6.0 b 234 8pm 8.1 c 345 12pm 9.7
谢谢。
答案 0 :(得分:1)
我们可以使用dcast
中的data.table
来执行此操作,这可能需要多个value.var
列
library(data.table)
dcast(setDT(Data1), ID~rowid(ID), value.var = names(Data1)[-1])
# ID Object_1 Object_2 Object_3 ITEM_1 ITEM_2 ITEM_3 Time_1 Time_2 Time_3
#1: 1 a b c 123 234 345 7pm 8pm 7pm
#2: 2 a b c 123 234 345 7am 8pm 12pm
# Value_1 Value_2 Value_3
#1: 12 4.0 1.0
#2: 6 8.1 9.7