r - 计算R中列表中每个元素的平均值
问题描述
我有一个元素列表(每个元素都有不同的尺寸)。前两个元素如下所示:
> str(ldf[[1]])
'data.frame': 23 obs. of 23 variables:
$ V1 : Factor w/ 23 levels "RS_number","rs11489820",..: 1 4 13 16 3 5 6 20 17 19 ...
$ V2 : Factor w/ 10 levels "0.344","0.494",..: 10 9 8 1 4 7 4 7 7 6 ...
$ V3 : Factor w/ 10 levels "0.235","0.357",..: 10 8 9 1 7 6 7 6 6 5 ...
$ V4 : Factor w/ 11 levels "0.235","0.318",..: 11 4 1 10 5 8 5 2 2 3 ...
$ V5 : Factor w/ 12 levels "0.35","0.502",..: 12 3 2 1 11 10 11 9 9 8 ...
$ V6 : Factor w/ 12 levels "0.376","0.446",..: 12 3 2 1 10 11 10 9 9 8 ...
$ V7 : Factor w/ 12 levels "0.35","0.502",..: 12 3 2 1 11 10 11 9 9 8 ...
> str(ldf[[2]])
'data.frame': 2 obs. of 2 variables:
$ V1: Factor w/ 2 levels "RS_number","rs34687326": 1 2
$ V2: Factor w/ 2 levels "1","rs34687326": 2 1
我正在尝试计算元素 1 中所有值的平均值。我使用了以下命令。
sapply(ldf, mean)
但我收到以下错误:
I am getting an error: Warning messages:
1: In mean.default(X[[i]], ...) :
argument is not numeric or logical: returning NA
解决方案
一个选项tidyverse
library(dplyr)
library(purrr)
map(A, ~ .x %>%
summarise(across(where(is.numeric), mean, na.rm = TRUE)))
数据
df3 <- data.frame(V1 = c("Hello", "World", "first"), V2 = c(1, 2, 3),
V3 = c("Hello", "World", "Again"))
A <- list(df3, df3, df3)
推荐阅读
- linux - Aapt 不在 arm 架构上运行
- reactjs - 从外部 src ReactJs 导入组件(.tsx)
- amazon-web-services - 有什么方法可以将私有 IP 地址从负载均衡器隐藏到公众?由于这个原因,我们未能通过 PCI 扫描
- angular - Capacitor-plugin-playlist:Ionic 5 在 Android 上没有音频
- python - 列表索引超出范围,但我不明白为什么
- c - 如何解决C中的动态内存分配错误
- android - (Kotlin) 文本字段的焦点
- mysql - 多个表上的多个 COUNT
- oracle - 为什么这里需要模式名称以及如何在没有它的情况下进行编译
- python - 有没有办法通过将字符串添加到 Python 中的另一个变量来调用变量?