【发布时间】:2017-01-17 18:04:57
【问题描述】:
虽然我搜索了很长时间的解决方案,例如 Assign value to group based on condition in column
我无法解决以下问题,非常感谢任何帮助!
我有以下数据框(实际上,有数千行):
df <- data.frame(ID1 = c(1,1,1,2,2,2,2,3,3,4,4,4,5,5,5,6,6,6,7,7),
ID2 = c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20),
Percentage = c(0,10,NA,65,79,81,52,0,0,11,12,35,0,24,89,76,0,NA,59,16),
Group_expected_result = c(6,6,6,7,7,7,7,1,1,3,3,3,4,4,4,5,5,5,2,2))
我要做的是为每个组分配一个从 1 到 7 的组类型,如 ID1 所示。应该分配哪种组类型取决于第 3 列的条件,百分比(可以具有从 0 到 100 的值)并分为七种类型:
类型 1 的百分比为 0,即
- 类型 1 = 0
- 类型 2 > 0 &
- 类型 3 > 9 &
- 类型 4 > 19 &
- 类型 5 > 29 &
- 类型 6 > 39 &
- 类型 7 > 49
这些类型的组合(上)定义了下面的组类型(G1-G7):
- G1 = 仅 T7
- G2 = 仅 T7 和 T2-T6
- G3 = 仅 T2-T6
- G4 = 至少一个 T1、一个 T2-T6 和一个 T7(= 全部)
- G5 = 仅 T7 和 T1
- G6 = 仅 T2-T6 和 T1
- G7 = 仅 T1
预期结果在样本数据框的最后一列,例如 第一组由类型 T1 和 T2 组成,因此应该是组类型 G6。
那么,问题是如何在最后一列中得到预期的结果?我希望我把问题说清楚了!提前致谢!
【问题讨论】:
-
所以type取决于百分比的组合,group取决于类型的组合,但是我不清楚ID1的作用是什么......
-
不应该 G7 = 只有 T7 和 G1 = 只有 T1 吗?至少这是可以从预期结果中推断出来的。
-
另外,您可以将其减少到 3 种类型:T1 = 0, T2 > 0 和 = 50
标签: r dataframe grouping conditional-statements