【发布时间】:2021-10-18 16:22:36
【问题描述】:
我一直在尝试使用循环,但它们只是不起作用,因为我之前没有做过任何处理这种复杂性的事情,我一直在尝试用 dplyer 来解决这个问题,这是一个不可能的练习。我不知道该怎么办。任何人都可以提出任何解决方案吗?
- 有列 A_1 A_2 B_1 B_2 C_1 C_2 D_1 D_2 E_1 E_2 F_1 F_2 G_1 G_2...
- 每行 1000 行
dat <- read.table(text = "ID A_1 A_2 B_1 B_2 C_1 C_2 D_1 D_2 E_1 E_2 F_1 F_2 G_1 G_2
11 1 2 3 4 3 4 3 4 3 4 3 4 3 4
32 5 6 7 8 6 7 6 7 6 7 6 7 6 7
73 15 15 10 10 3 4 3 4 3 4 3 4 2 2
84 13 13 15 15 4 4 3 4 3 4 3 4 2 2
65 2 2 2 2 2 2 2 2 2 2 2 1 2 2
", header = TRUE)
- 比较两列 A_1 和 A_2
- 取最大值(例如 A_2)
- 打印第三列中的最大值(selected_A_2 val)
- 在第四列中打印最大的名称(selected_A_2 名称)
- 基于 A_2 是最大的事实,取所有值 B_2、C_2、D_2、E_2...(分配新列 selected_B_2 名称、selected_B_2 val、selected_C_2 名称、selected_C_2 val)
使用 dplyer 调节上述内容非常简单。但是,以下是不可能的。
- 但是,如果 A_1 == A_2,则比较 B_1 和 B_2
- 取最大值(例如 B_1)
- 打印第三列中的最大值(selected_B_1 val)
- 在第四列中打印最大的名称(selected_B_1 名称)
- 基于 B_1 是最大的事实,取所有值 B_1、C_1、D_1、E_1...(分配新列 selected_C_1 名称、selected_C_1 val、selected_D_1 名称、selected_D_1 val)
然后
- 但是,如果 A_1 == A_2 和 B_1 == B_2 则比较 C_1 和 C_2 等等……
- 如果碰巧所有人都是平等的,那么只需选择 A_1 B_1 C_1... 并继续前进
任何指导将不胜感激!
黄色为终端比较,行的其余部分是否选择_1或_2列基于黄色项为_1或_2
【问题讨论】:
-
请显示您的预期输出
-
您好...是的,但与该问题不同/扩展版本。
-
对不起,我会输入预期的输出!
标签: r