r - for循环内的函数有问题
问题描述
我创建了一组对象:
rs_s = {
rs_s_72 <- regular_season %>% filter(season == 72)
rs_s_73 <- regular_season %>% filter(season == 73)
rs_s_74 <- regular_season %>% filter(season == 74)
rs_s_75 <- regular_season %>% filter(season == 75)
rs_s_76 <- regular_season %>% filter(season == 76)
rs_s_77 <- regular_season %>% filter(season == 77)
rs_s_78 <- regular_season %>% filter(season == 78)
rs_s_79 <- regular_season %>% filter(season == 79)
rs_s_80 <- regular_season %>% filter(season == 80)
rs_s_81 <- regular_season %>% filter(season == 81)
rs_s_82 <- regular_season %>% filter(season == 82)
rs_s_83 <- regular_season %>% filter(season == 83)
rs_s_84 <- regular_season %>% filter(season == 84)
rs_s_85 <- regular_season %>% filter(season == 85)
}
然后,我尝试使用此代码取每个对象中“正确”列的平均值,但它似乎不起作用:
for (i in rs_s){
mean('correct')
print(mean)
}
如果有人知道,有人可以告诉我哪里可能出错了,我该如何解决?
编辑:我还查看了该站点和其他站点上的其他几个问题,但似乎没有一个与这个问题特别相关。
解决方案
如果我们在全局环境中创建了以 'rs_s_' 开头的对象,则根据模式将这些对象获取mget
到 alist
中,提取correct
列并mean
通过遍历list
with 来获取sapply
sapply(mget(ls(pattern = '^rs_s_\\d+$')), function(x) mean(x$correct))
根据语法,使用 'season' 而不是filter
ing 执行 group_by 可能会更好,从而避免创建多个对象,然后收集这些对象以计算mean
library(dplyr)
regular_season %>%
group_by(season) %>%
summarise(Mean = mean(correct, na.rm = TRUE), .groups = 'drop')
如果我们只需要mean
特定的“季节”,那么filter
在group_by
regular_season %>%
filter(season %in% 72:85) %>%
group_by(season) %>%
summarise(Mean = mean(correct, na.rm = TRUE), .groups = 'drop')
推荐阅读
- reactjs - 如何为简单的 Fulcro 应用程序设置动态 UI 路由
- html - 如果隐藏了该广告,则不支持通过该广告设置的 HTML 列宽
- c++ - 如何用模板替换多态性原则以拥有通用数据库?
- ios - 使用 Metal Performance Shaders 生成随机数据
- sql - 在 WHERE 子句中结合 CASE 和 BETWEEN
- pygame - 为什么我的游戏(使用 pygame)在我为背景设置图像后会如此滞后?
- c++ - 定义的符号的链接错误(根据 llvm 符号表转储程序)
- intellij-idea - 将 IntellIJ 终端更改为在复制/粘贴时需要“Shift”
- python-3.x - 如何在带参数的打印函数中使用 \n
- php - 在命名空间对象上调用多个方法?