【发布时间】:2020-02-26 18:17:28
【问题描述】:
我有一个包含 4 列的数据框(其中一部分如下所示)。
第一列显示按数字排序的组:1、2、...。
我想生成一个新列“value4”。 对于每个组,如果组大小大于 2 (>=3),并且“value1”列中的所有值都大于 2 (>2) 或小于 -2 (
g value1 value2 value3
1 1.1 8 1
1 1.2 8 1
1 1.3 9 1
2 3 10 5
2 4 11 5
2 5 0 4
2 6 1 6
3 -3 2 5
3 -4 3 10
3 -5 4 0
4 -3 1 0
4 -4 1 0
输出将是:
g value1 value2 value3 value4
1 1.1 8 1 8 # for group "1", all the values in "value1" are <2, so the values from column "value2" are taken
1 1.2 8 1 8
1 1.3 9 1 9
2 3 10 5 5 # for group "2", all the values in "value1" are >2, median of numbers 5,5,4,6 from column "value3" is calculated
2 4 11 5 5
2 5 0 4 5
2 6 1 6 5
3 -3 2 5 5 # for group "3", all the values in "value1" are < -2, median of numbers 5,10,0 from column "value3" is calculated
3 -4 3 10 5
3 -5 4 0 5
4 -3 1 0 1 # group size less than 3, so the values from column "value2" are taken
4 -4 1 0 1
我想我可以使用聚合(),但我不知道如何整合条件。感谢您的宝贵时间和帮助。
【问题讨论】:
标签: r