【发布时间】:2017-03-26 20:45:18
【问题描述】:
这是我的 data.frame 的示例:
df = read.table(text='colA colB colC
10 11 7
10 34 7
10 89 7
10 21 7
2 23 5
2 21 5
2 56 5
22 14 3
22 19 3
22 90 3
11 19 2
11 45 2
1 45 0
1 23 0
9 8 0
9 11 0
9 21 0', header = TRUE)
我需要按colA 和colC 对行进行分组,并添加一个新列,该列说明基于colB 的唯一值的总和。
在此处的步骤中,我需要为这个特定的 data.frame 做些什么:
使用
colA= 10 和 9、colA= 2 和 1、colA= 22 和colA= 11 对行进行分组;找到每个组的唯一值
colB;在新列中添加唯一值 (
newcolD)。
请注意,colC 表示colA = 10 和 9、colA = 2 和 1、colA = 22 和 colA = 11 的观察总数。
data.frame 需要保持按colC 递减顺序排列。
我的预期输出是:
colA colB colC newcolD
10 11 7 5
10 34 7 5
10 89 7 5
10 21 7 5
9 8 0 5
9 11 0 5
9 21 0 5
2 23 5 4
2 21 5 4
2 56 5 4
1 45 0 4
1 23 0 4
22 14 3 3
22 19 3 3
22 90 3 3
11 19 2 2
11 45 2 2
请注意,在df 中,colB 的重复值是:组 10 和 9 为 11 和 21,组 2 和 1 为 23。
【问题讨论】:
-
条件语句不清楚
-
您需要修改这句话:“对于每个不同于零的 colC 组,每个 colA 值及其前一个值(即 10 和 9、2 和 1)并添加一个新列来说明总和colB 唯一值的数量(对于每个组)。” .所以它可以由以英语为母语的人解释,或者您需要逐步说明过程,以便推断意图。对动词-宾语短语没有解释:“每个 colA 值都比零多样化”。
-
不要对评论采取防御措施,而是学会监控您的问题,并及时、适当地回应建设性的建议,不要发布重复的跟进。点数与否决票无关。他们与不按照建议使用该网站有关
标签: r dataframe grouping unique rows