我是 R 的新手,并且在处理语法方面有很多时间。假设我有以下数据框数据:
value label second
1 a q
2 a q
3 a ASDF
4 b q
6 b QWERTY
6 b QWERTY
7 c q
8 c q
9 c q
10 d q
现在,我想得到一个向量,df$second
它对应于df$value
给定值的最大值df$label
。例如,给定df$label = 'a'
,我想返回'ASDF'
。因为df$label = 'b'
,我想回来'QWERTY', 'QWERTY'
。
这是我正在尝试的:
max_value <- max(data$value[data$label == 'a'])
result <- c()
for (x in data$value){
if (x == max_value){
result <- c(result, data$second)
}
}
现在这不会生成正确的结果向量。我想想办法用 sapply、tapply、mapply 等来做到这一点。我只是无法理解这些功能。任何帮助将不胜感激。