r - is.numeric() 不能与 data[,i] 一起使用,但可以与 data$variable 一起使用?
问题描述
我正在尝试编写一个循环遍历列的函数,并将根据列的数据类型执行不同的操作。它无法输入 if 语句,因为 is.numeric(data[,i]) 返回 FALSE,无论其对应的 is.numeric(data$variable) 是否返回 TRUE。我不确定解决这个问题的最佳方法。如果您能提供帮助,请告诉我。谢谢!
这是功能:
get_summary_stats <- function(data) {
results <- list()
for (i in names(data)) {
var.name <- names(data[,i])
if (is.numeric(data[,i])) {
med.est <- median(data[,i])
min.est <- min(data[,i])
max.est <- max(data[,i])
mean.est <- mean(data[,i])
SD <- sd(data[,i])
num.na <- sum(is.na(data[,i]))
results[[i]] <- c(var.name, num.na, mean.est, SD, med.est, min.est, max.est)
}
if (is.factor(data[,i])){
var.lables <- levels
counts <- as.data.frame(table(data[,i]))
total <- sum(counts$Freq)
num.na <- c("NA", nrow(data) - total)
counts <- rbind(counts, num.na)
counts$Percent <- (counts$Freq / total) * 100
results[[i]] <- counts
}
}
return(results)
}
这是该问题的一个示例:
> is.numeric(full_data[,"Patient Age [70: Age]"])
[1] FALSE
> is.numeric(full_data$`Patient Age [70: Age]`)
[1] TRUE
解决方案
推荐阅读
- angular - Angular如何将iframe中的所有target =“_blank”更改为iframe中的target =“_self”?
- docker - 错误:无法在 http+docker://localhost 连接到 Docker 守护程序 - 它正在运行吗?
- python-3.x - 如何知道 txt 文件中以相同字符开头的行数?
- bash - 如何将 docker ENTRYPOINT 与 shell 脚本文件组合参数一起使用
- regex - 尝试编写与给定字符串匹配的正则表达式并将其分成组
- mysql - 如何在select *语句SQL中发送“”而不是null
- javascript - 使用 Laravel 6/JavaScript 条纹 redirectToCheckout
- python - 在运行测试套件时:运行测试套件显示测试通过通知但显示“空套件”
- java - 在 JBPM 7 中配置 workitemhandler 以发送电子邮件
- python - 如何克服人脸检测安全问题,使其在有人展示图片时无法检测到人脸?