【发布时间】:2015-03-28 01:42:10
【问题描述】:
我有一个数据框,其中有一列名称和更多列,其中包含由 0 和 1 编码的属性(等于 no 和 yes)。
Name Running Cycling
1 Adam 1 0
2 Steve 0 1
3 Aaron 1 1
4 Nick 1 0
5 Paul 1 0
6 Stuart 1 0
我现在想将 yes 平均分成给定数量的组,按列表示所有 1,并在附加列中添加相关组的数量。如果我们将跑步和骑自行车分成两组,结果应该是这样的:
Name Running Cycling Running-Group Cycling-Group
1 Adam 1 0 1 0
2 Steve 0 1 0 1
3 Aaron 1 1 1 2
4 Nick 1 0 1 0
5 Paul 1 0 2 0
6 Stuart 1 0 2 0
我可以通过以下方式获取组号:
ceiling(sum(column)/100*groups)
我确信使用 R 有一个简单的方法,但是我找不到忽略 0(nos)并将组号仅添加到 1(yes )。
感谢您的帮助。
【问题讨论】:
-
在预期结果中,我认为
Running列有错字。所有元素都是1。此外,不清楚您是如何得到预期结果的。ceiling公式中的groups是什么? -
完全不清楚。例如,如何获得第 2 行和第 3 行的两个额外列?
-
我认为这两个表之间的描述会很清楚...... 1应该被解释为yes,我想将所有“是”划分为定义数量的组。因此,如果有 8 个 1s 并且我想创建 4 个组,则具有 1 的前两个名称将在第 1 组中,接下来的两个在第 2 组中,依此类推.
-
@Laura 如果您将 1 等分,那么
Running的第一个数据集中的0将是一个错字。否则,1s的数量将是奇数,即 5,并且不清楚如何在奇数之间划分组。 -
我只能说对不起:这确实是一个错字,所以没有任何意义。我编辑了它,希望现在有意义。
标签: r