重塑数据帧:将多个列宽扩展为两个相应的列

时间:2016-06-11 19:19:15

标签: r reshape

假设我有一个这样的数据框:

df<-data.frame(quest.id=1:4,
           rep.c1=c("a","none","b","none"),
           rep.n1=c(101,0,103,0),
           rep.c2=c("none","c","b","a"),
           rep.n2=c(0,102,103,104))

c1c2是对同一分类变量(cn)的观察,以及n1n2是同一数字变量的一部分( nn)。 c1中的观察结果与n1中的观察结果相对应(c2n2的观察结果相同。此外,确实存在大量缺失值,此处将"none"编码为df.result<-data.frame(quest.id=c(1,2,3,3,4), rep.cn=c("a","c","b","d","a"), rep.nn=c(101,102,103,103,104)) 相应的数值等于零。

我的目标是将数据重塑为长格式。最终结果应如下所示:

c1

只剩下两列,一列用于类别,另一列用于相应的数值。所有“缺失”都将被删除。我尝试使用reshape包,但不知怎的,它在某些方面变得非常复杂。

这个简单的例子说明了变量只分为两列(c2n1以及n2array_values($ids))的情况。但是我的真实数据每个都包含十个列。为了创建一个简单的例子,我在这里简化为两列。然而,如果答案可以生成两个以上的两列,那将会很棒。

0 个答案:

没有答案