R:折叠行并根据数据框中的条件更改值
我有一个数据集: structurelistnum=c12L,12L,代码=structure1:2,.Label=ca, b、 等级=系数,排名=c2414.52414.5,底部=c-0.0153795976572657, -0.00651997615327495,先前=c0.00121016455715892, -0.00016609624290187,全部之前=c-0.00057097382726524, -0.000771377162183913,row.names=cNA,-2L,class=data.frame 我想根据num和ranking来折叠这两行,因为它们是相同的,但会根据两行的列值bottom,previous,和of_all_previous应按顺序进行比较,意思是:如果它们相等,则转到下一列,如底部->上一列->of_all_previous中所示,并选择值较高的代码 对于提供的样本数据,代码b是因为底部列中的-0.0065199761532749503>-0.0153795976572656777 如果它们相等,则必须查看前面的列 我认为dplyr可能可以使用%>%来折叠行,但我找不到如何根据条件同时更改行 我希望输出如下所示:R:折叠行并根据数据框中的条件更改值,r,dplyr,row,collapse,R,Dplyr,Row,Collapse,我有一个数据集: structurelistnum=c12L,12L,代码=structure1:2,.Label=ca, b、 等级=系数,排名=c2414.52414.5,底部=c-0.0153795976572657, -0.00651997615327495,先前=c0.00121016455715892, -0.00016609624290187,全部之前=c-0.00057097382726524, -0.000771377162183913,row.names=cNA,-2L,cl
num code ranking
1 12 a 2414
提前感谢。也许,我们可以转向“长”格式并对行进行切片
也许,我们可以转向“长”格式并对行进行切片 一种方法可能是按num和ranking对_进行分组,以查看具有相同值且需要折叠的行 然后,将按降序排列进行比较的列,包括bottomprevious和of_all_previous。当这样做时,排序数据中的较高行将考虑列,以便在有关系时进行比较。 最后,您可以根据排序使用firstcode创建最终的_代码
library(tidyverse)
df %>%
group_by(num, ranking) %>%
arrange(-bottom, -previous, -of_all_previous) %>%
mutate(final_code = ifelse(n() > 1, as.character(first(code)), as.character(code))) %>%
slice(1) %>%
select(num, code, ranking)
一种方法可能是按num和ranking对_进行分组,以查看具有相同值且需要折叠的行
然后,将按降序排列进行比较的列,包括bottomprevious和of_all_previous。当这样做时,排序数据中的较高行将考虑列,以便在有关系时进行比较。
最后,您可以根据排序使用firstcode创建最终的_代码
library(tidyverse)
df %>%
group_by(num, ranking) %>%
arrange(-bottom, -previous, -of_all_previous) %>%
mutate(final_code = ifelse(n() > 1, as.character(first(code)), as.character(code))) %>%
slice(1) %>%
select(num, code, ranking)
抱歉,它实际上不是J.NKENcan您可以显示预期的输出格式抱歉,它实际上不是J.NKENcan您可以显示预期的输出格式可能有一种情况,第一列底部的值将相等,如果是这样,我希望代码也测试其余的列。这可能吗?可能有一种情况,第一列底部的值将相等,如果是这样,我希望代码也测试其余的列。这可能吗?