r - 根据行子集上的逻辑条件对数据框进行子集化

标签 r conditional-statements subset logical-operators

我试图想出一个简单的解决方案来解决后续问题。这是最小的工作示例:

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/

相关文章:

算法-找到总和在给定范围内的子集的数量

r - 将代码块放在 if 语句中会更改分配行为 R

r - 如何合并颜色和形状?

r - 使用R-当值重复少于3次时删除行

c - 重复输入直到回答正确

python - 在 pandas 中显示列

typescript - 将分布式条件类型与泛型方法结合使用时出现问题

r - R 中面板数据的子集化

r - 将列表转换为 igraph 对象以进行绘图的最优雅的方法

r - 在 R 中使用 NA 作为子集