提问人:confusedindividual 提问时间:4/13/2022 最后编辑:AndrewGBconfusedindividual 更新时间:4/13/2022 访问量:169
在 R: 中,只需更改一行中的最大值
In R: way to just change the max value in a row
问:
我正在尝试更改 R 中一列中特定行的值(从原始值减去 1),这恰好是最后一行,它也将始终是最大值,因为该列始终从最小值到最大值排序。
Example data.frame
col_a
1 27
2 29
3 35
4 42
5 56
>Example Output:
col_a
1 27
2 29
3 35
4 42
5 55
答:
2赞
TarJae
4/13/2022
#1
这是一个解决方案:dplyr
要将更改应用于最后一行,首先使用 ,这将确保最大值位于最后一行,然后使用带有 function 的语句:arrange
ifelse
last()
library(dplyr)
df %>%
arrange(col_a) %>%
mutate(col_a = ifelse(col_a == last(col_a), col_a-1, col_a))
col_a
1 27
2 29
3 35
4 42
5 55
2赞
AndrewGB
4/13/2022
#2
这是一个选项,我们使用 use 来更改 中的最后一个值。data.table
mult='last'
col_a
library(data.table)
dt <- as.data.table(df)
dt[unique(.N), col_a := col_a - 1, mult = 'last']
输出
col_a
1: 27
2: 29
3: 35
4: 42
5: 55
数据
df <- structure(list(col_a = c(27L, 29L, 35L, 42L, 56L)), class = "data.frame", row.names = c(NA,
-5L))
下一个:向条形图添加图案
评论
df$col_a[nrow(df)] <- df$col_a[nrow(df)]-1