我有一个以下结构的data.frame:
$('.select-option label[for*=Actual_Answer]').prepend(function(){
return $(this).prev("input")
});
我想把它传播到这个:
value group1 group2
1: 1 A a1
2: 2 A a2
3: 3 A a3
4: 4 B b1
5: 5 B b2
因此,根据每个 group1 var1 var2 var3 value1 value2 value3
1: A a1 a2 a3 1 2 3
2: B b1 c2 NA 4 5 NA
中唯一varX
的数量,以及随后的group2
列,基本上会有未指定数量的group1
列。< / p>
有没有一个很好的方法来实现这一目标?来自tidyr的valueX
并不像我理解的那样做我想做的事。谢谢!
...
在这里你可以构建第一个data.frame:
spread
答案 0 :(得分:2)
我们需要使用data.table
的开发版本创建序列列,这可以使用rowid
函数来完成。此外,由于dcast
中的data.table
需要多个value.var
列,因此可以在一行中完成。
library(data.table)#v1.9.7+
dcast(setDT(df1), group1~rowid(group1), value.var = c("value", "group2"), sep="")