在未定义的列中传播值

时间:2016-10-11 16:45:44

标签: r

我有一个以下结构的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

1 个答案:

答案 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="")