r - 如何计算每个 csv 数据帧列表的平均值
问题描述
我有 30 多个 csv 文件,它们具有相同数量的列和行以及相同的名称标题。我正在尝试计算每个文件的其中一列的平均值,并将它们放入一个新文件中,其中包含我的每个 csv 文件名和计算的平均值。这就是我的数据的样子: 数据
我使用过列表文件:
estaciones <- list.files(path = "D:/A/",
recursive = T, pattern = "PRCPTOT.csv", full.names = T)
然后我阅读了csv的使用:
estaciones = lapply(estaciones, read.csv)
我还需要将 -99-9 值更改为 NA,但下一个代码行似乎无法正常工作:
lapply(estaciones, function(prcptot) {prcptot[prcptot ==-99.9] <- NA; return(prcptot)})
当我看到我的数据时,它似乎已经进行了替换,但是当我尝试使用以下代码计算平均值时,我得到了每个数据帧的 NA 值。
apply(estaciones, mean)
如何正确替换我所有文件的值,计算每个数据框的平均值并使用每个 csv 文件的计算平均值和各自的名称创建一个新文件?谢谢
解决方案
尝试这样做
l <- split(mtcars, mtcars$vs)
l_split <- lapply(l, function(x) {x$cyl[x$cyl == 6] <- NA; x})
sapply(l_split, function(x) apply(x, 2, mean, na.rm = T))
#> 0 1
#> mpg 16.6166667 24.557143
#> cyl 7.7333333 4.000000
#> disp 307.1500000 132.457143
#> hp 189.7222222 91.357143
#> drat 3.3922222 3.859286
#> wt 3.6885556 2.611286
#> qsec 16.6938889 19.333571
#> vs 0.0000000 1.000000
#> am 0.3333333 0.500000
#> gear 3.5555556 3.857143
#> carb 3.6111111 1.785714
由reprex 包创建于 2021-07-13 (v2.0.0 )
推荐阅读
- jquery - 向 SharePoint 选择字段添加条目在 IE 中出错
- javascript - 使用瓶颈限制库中的 API 请求
- java - 测量网络中跳跃之间的时间(JAVA)
- javascript - 如何从没有 src 目录的模块导出?
- python - 是否有任何交互式图形可视化工具可以让我拥有 excel 文件中的节点和边?
- node.js - AWS Elastic Beanstalk Amazon Linux 2 - 如何设置自定义 NodeCommand
- java - 如何在运行时在 Scala/Java 中找到带注释的方法
- c# - WebAPI 未成功接受 Post 请求
- go - 合并排序计数器切片
- python - Django 查询集按相关字段中的最新值排序