【发布时间】:2014-11-06 20:08:09
【问题描述】:
我有一个这样的数据框:
Family Component x1 m_x1 x2 m_x2 x3 m_x3 y1 m_y1 y2 m_y2 y3 m_y3
a1 1 1 100 2 300 0 0 2 250 0 0 0 0
a1 2 1 100 2 300 0 0 2 250 0 0 0 01
a1 3 1 100 2 300 0 0 2 250 0 0 0 0
a2 1 2 150 0 0 0 0 0 0 0 0 0 0
a2 2 2 150 0 0 0 0 0 0 0 0 0 0
a3 1 1 4000 3 150 4 130 2 150 3 400 0 0
a3 2 1 4000 3 150 4 130 2 150 3 400 0 0
a3 3 1 4000 3 150 4 130 2 150 3 400 0 0
a3 4 1 4000 3 150 4 130 2 150 3 400 0 0
家庭是分组变量。然后我希望如果"Component"(对于每个Family)的值与x1、x2、x3、y1、y2、y3 中的值不匹配,则该值该变量和下一个(对于x1,m_x1,对于x2,m_x2,...)被删除。我正在寻找的结果是:
Family Component x1 m_x1 x2 m_x2 x3 m_x3 y1 m_y1 y2 m_y2 y3 m_y3
a1 1 1 100 0 0 0 0 0 0 0 0 0 0
a1 2 0 0 2 300 0 0 2 250 0 0 0 0
a1 3 0 0 0 0 0 0 0 0 0 0 0 0
a2 1 0 0 0 0 0 0 0 0 0 0 0 0
a2 2 2 150 0 0 0 0 0 0 0 0 0 0
a3 1 1 4000 0 0 0 0 0 0 0 0 0 0
a3 2 0 0 0 0 0 0 2 150 0 0 0 0
a3 3 0 0 3 150 0 0 0 0 3 400 0 0
a3 4 0 0 0 0 4 130 0 0 0 0 0 0
我应该使用什么功能?我已经尝试过合并但无法使其工作。
【问题讨论】:
-
在这个数据帧上使用
melt会使这个过程变得更容易。