我试图想出一个简单的解决方案来解决后续问题。这是最小的工作示例:
data <- data.frame(subject = c('Math', 'English', 'French', 'English'),
grade = c(1, 3, 5, 4))
我想要一个比较英语成绩并返回一个逻辑向量的函数,该逻辑向量对于英语等级最高的行为 TRUE,对于所有其他行为 FALSE。在这种情况下 [1] FALSE FALSE FALSE TRUE
.
最佳答案
我们可以通过 ave
将每个 'subject' 的 max
'grade' 与 'grade' 进行比较以获得逻辑索引并检查 'subject'也是“英语”
with(data, ave(grade, subject, FUN = max)==grade & subject == "English")
#[1] FALSE FALSE FALSE TRUE
关于r - 根据行子集上的逻辑条件对数据框进行子集化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46299925/