【发布时间】:2012-12-22 23:45:40
【问题描述】:
我是 R 新手/可以选择轻松地重新组织数据,并且一直在寻找解决方案,但找不到我想要做的事情。 Reshape2 的熔化/铸造似乎不太奏效,而且我对 plyr 的掌握还不够好,无法将其考虑在内。
基本上,我有一个 data.frame,其结构如下所示,其中每个元素都是一个可变长度的类别列表(更紧凑,因为 # 列更大,我实际上有多个 category_lists我想分开):
>mydf
ID category_list xval yval
1 ID1 cat1, cat2, cat3 xnum1 ynum1
2 ID2 cat2, cat3 xnum2 ynum2
3 ID3 cat1 xnum3 ynum3
我想将类别作为因素(以及相关的值,即第 3/4 列)进行操作,所以我认为我最终需要这样的东西,其中 ID 和 x/y/其他列值是重复的根据类别列表的长度:
ID category xval yval
1 ID1 cat1 xnum1 ynum1
2 ID1 cat2 xnum1 ynum1
3 ID1 cat3 xnum1 ynum1
4 ID2 cat2 xnum2 ynum2
5 ID2 cat3 xnum2 ynum2
6 ID3 cat3 xnum2 ynum2
如果 category_list 上的因子/方面有另一种解决方案,那将是一个更简单的解决方案,但我还没有遇到支持此的方法, 例如以下抛出错误
>ggplot(mydf, aes(x=x, y=y)) + geom_point() + facet_grid(~cat_list)
layout_base(data, cols, drop = drop) 中的错误: 至少一层必须包含用于分面的所有变量
谢谢!
【问题讨论】:
-
你能把
dput(mydf)的输出贴出来吗。