假设我有以下(虚拟)df:

df <- data.frame(conference = c('East', 'East', 'East', 'West', 'West', 'East'),
                 team = c('A', 'A', 'A', 'B', 'B', 'C'),
                 points = c(11, 8, 10, 6, 6, 5),
                 rebounds = c(7, 7, 6, 9, 12, 8))

我想对得分和篮板一栏做一些计算.在R基地,我可以做像这样的事情

a_val <- sum(df$points[which(df$team == "A")]) /
  sum(df$rebounds[which(df$team == "A")])
b_val <- sum(df$points[which(df$team == "B" & df$rebounds >= 7)]) /
  sum(df$rebounds[which(df$team == "B" & df$rebounds >= 7)])

在整齐的诗句中,使这些操作更有效率的which()相当于什么?

推荐答案

在问题的例子中,我们实际上不需要which.没有它,我们只剩下逻辑索引,它在数据帧和数据块上工作,并给出相同的答案.例如:

library(tibble)

tib <- as_tibble(df)
a_val <- sum(tib$points[tib$team == "A"]) / sum(tib$rebounds[tib$team == "A"])

R相关问答推荐

按自定义数字模式对变量名称排序

对lme 4对象运行summary()时出错(diag中的错误(from,names = RST):对象unpackedMatrix_diag_get找不到)

如何使用stat_extract_all正确提取我的目标值?

pickerInput用于显示一条或多条geom_hline,这些线在图中具有不同 colored颜色

将年度数据插入月度数据

如果行和大于值,则过滤

R Sapply函数产生的值似乎与for循环方法略有不同

根据多个条件增加y轴高度以适应geom_text标签

如何直接从R中的风险分数计算c指数?

是否可以创建一个ggplot与整洁判断的交互作用

将数字转换为分钟和秒

仅在Facet_WRAP()中的相应方面包含geom_abline()

当我们有多个反斜杠和/特殊字符时使用Gsubing

将摘要图添加到facet_WRAP gglot的末尾

创建在文本字符串中发现两个不同关键字的实例的数据框

用满足特定列匹配的另一行替换NA行

如何在条形图中的x和填充变量中包含多个响应变量?

R try Catch in the loop-跳过缺少的值并创建一个DF,显示跳过的内容

Package emMeans:如果emmip模型中包含的变量较少,emMeans模型中的其他变量设置为什么?

使用dplyr删除具有条件的行