gpt4 book ai didi

r - 使用 R 中的 data.table 识别和注释分组最小值

转载 作者:行者123 更新时间:2023-12-04 05:33:30 24 4
gpt4 key购买 nike

我需要为示例数据中的每个 class 确定最小的 value (忽略 NAs) 并将其标记为“min”使用 data.table

如下所示的新列

示例数据:

df = structure(list(class = c("apple", "apple", "apple", "banana", 
"banana", "berry", "berry", "grape", "grape", "grape", "grape",
"grape", "melon", "melon", "melon"), value = c(108816872, 108851837,
108890411, 108784778, NA, 108784778, 108816872, 108816872, 108850460,
NA, NA, NA, NA, NA, NA)), .Names = c("class", "value"), class = "data.frame", row.names = c(NA,
-15L))

期望的输出:

#    class     value anno
#1 apple 108816872 min
#2 apple 108851837 NA
#3 apple 108890411 NA
#4 banana 108784778 min
#5 banana NA NA
#6 berry 108784778 min
#7 berry 108816872 NA
#8 grape 108816872 min
#9 grape 108850460 NA
#10 grape NA NA
#11 grape NA NA
#12 grape NA NA
#13 melon NA NA
#14 melon NA NA
#15 melon NA NA

最佳答案

我打算建议@eddies 方法,但这里有一个替代方法

setDT(df)[order(value), min := c("min", rep(NA, .N - 1)), by = class]

编辑,如果你想要实际值而不是“min”,你可以修改为

setDT(df)[order(value), min := c(value[1L], rep(NA, .N - 1L)), by = class]

关于r - 使用 R 中的 data.table 识别和注释分组最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31146189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com