r - 函数在 for 循环中返回 NA
问题描述
您好,我有一个数据框,我想表示一些行。我在用
imc <- dfWoNA[1,]
imc <-head(imc,-1)
id20 <- unique_entrezgene_ids[1:20]
for (j in id20) {
rows <- dfWoNA [which(dfWoNA$X == as.double(j)),]
temp <- colMeans(rows[,2:285], na.rm = FALSE)
nx <- c(j,temp)
imc <- rbind(imc,nx)
rm(rows)
rm(nx)
rm(temp)
}
显示状态但是上面函数的结果我只为第一行获取结果,如果在没有手动循环的情况下执行相同操作,我正在为 id20 中的每个元素获取结果,但是 for 循环给出除第一行之外的行的 NA 结果。如果你能帮助我,我很感激。谢谢你。
解决方案
我们可以用tidyverse
. 按“X”分组,获取原始数据集mean
的所有列summarise_all
和bind
行
library(tidyverse)
dfWoNA %>%
group_by(X) %>%
summarise_all(mean, na.rm = TRUE) %>%
bind_rows(dfWoNA, .)
推荐阅读
- javascript - 为什么我的复选标记不会在页面加载时呈现为选中状态?
- sql - 如何在 SQL 中将列值与同一表中另一列中的多个值进行比较
- python - 如何绘制更大的边界框和仅裁剪边界框文本 Python Opencv
- python - Djano 值的格式无效。必须是 YYYY-MM-DD HH:MM
- php - 我正在尝试使用 mpdf(PHP 库)生成 PDF/A-3,但是当我尝试使用在线验证器验证输出时,结果不是 PDF/A-3
- nginx - Nginx TCP PROXY 转发客户端IP
- google-analytics - 账户访问管理报告
- python - 在列表Python中查找最近的缺失数字
- google-chrome - 在 Chrome 控制台上的消息之间单击(错误与警告等)
- angular - 如何在 Angular 中设置正确的反向代理?我的错误在哪里?