r - 在为 R 中的数据框名称列表生成样本比例时,无法弄清楚为什么 lapply 语句会生成 NaN?
问题描述
我创建了一个函数“visibilityProportionODV”,它生成二进制变量 x$ODV 的样本比例,其中“x”是列表“dfnames”中的某个数据框。变量 ODV 包含值 1、0 或缺失 (NA)。我正在尝试将我的数据框列表应用于输出样本比例的函数。我已经通过插入“x”的特定数据帧来验证该函数在 lapply 函数之外工作。然而,我仍然在 lapply 函数中获得了 NaN 的输出。谁能告诉我哪里出错了?
namesToProportionFct <- function(x) {
x$ODV <- as.integer(x$ODV)
numNA <- length(x$ODV[which(is.na(x$ODV) == TRUE)])
prop <- sum(x$ODV, na.rm = TRUE) / (length(x$ODV) - numNA)
return(prop)
}
visibilityProportionODV <- lapply(dfnames, namesToProportionFct)
# Output:
> visibilityProportionODV
[[1]]
[1] NaN
[[2]]
[1] NaN
[[3]]
[1] NaN
[[4]]
[1] NaN
[[5]]
[1] NaN
[[6]]
[1] NaN
[[7]]
[1] NaN
[[8]]
[1] NaN
[[9]]
[1] NaN
[[10]]
[1] NaN
解决方案
使用以下 data.frames 虚拟列表,您的功能和 lapply 对我来说工作正常:
dfnames <- list(
data.frame(ODV=rep(sample(c(1,0,NA)),100)),
data.frame(ODV=rep(sample(c(1,0,NA)),100))
)
您能否提供一个类似的重新创建 NaN 的 data.frames 列表?
推荐阅读
- sql - PostgreSQL:使用 BIT VARYING 列进行位掩码操作
- firebase - Firebase 安全规则:获取文档 ID 中带有空格的文档
- java - 了解如何使用 EL 和 JSP 表达式检索不存在的属性。与头部优先不一致
- php - 如何解决 PHP 致命错误:未捕获的错误:在 laravel 版本更新时调用未定义的方法 Illuminate\Container\Container::basePath() 错误?
- mysql - 从mysql中的两个表中嵌套选择
- python - 如何让我的机器人接收并保存我发送的文件?
- shell - 如果部分路径不存在,mkdir 也是
- javascript - 试图看看方法是如何被调用的,即。如果 $('.test') 或 $('.test').hide() ,如果第一个返回元素 如果第二个返回对象
- kubernetes - 是否可以将特定资源授予 Google Cloud 上的特定用户?
- python - 有没有办法在不搜索空格或下划线的情况下检测单词