假设我有一个这样的数据框:
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))
c1
和c2
是对同一分类变量(cn
)的观察,以及n1
和n2
是同一数字变量的一部分( nn
)。 c1
中的观察结果与n1
中的观察结果相对应(c2
和n2
的观察结果相同。此外,确实存在大量缺失值,此处将"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包,但不知怎的,它在某些方面变得非常复杂。
这个简单的例子说明了变量只分为两列(c2
和n1
以及n2
和array_values($ids)
)的情况。但是我的真实数据每个都包含十个列。为了创建一个简单的例子,我在这里简化为两列。然而,如果答案可以生成两个以上的两列,那将会很棒。