gpt4 book ai didi

r - 试图理解 R 错误 : Error in FUN(X[[i]], ...) :仅在包含所有数字变量的数据框中定义

转载 作者:行者123 更新时间:2023-12-02 04:08:40 25 4
gpt4 key购买 nike

我收到此错误消息和回溯:

Error in FUN(X[[i]], ...) : 
only defined on a data frame with all numeric variables

5 stop("only defined on a data frame with all numeric variables")
4 FUN(X[[i]], ...)
3 lapply(args, function(x) {
x <- as.matrix(x)
if (!is.numeric(x) && !is.complex(x))
stop("only defined on a data frame with all numeric variables") ...
2 Summary.data.frame(structure(list(Date = structure(c(279L, 285L,
291L, 297L, 303L, 315L, 321L, 327L, 333L, 339L, 345L, 357L, 363L,
369L, 375L, 387L, 393L, 399L, 405L, 417L, 423L, 429L, 435L, 441L,
447L, 453L, 477L, 501L, 555L, 561L, 567L, 573L, 579L, 585L, 591L, ...
1 corr("specdata")

从我的研究来看,这似乎意味着我的数据集中存在非数字数据。我使用的数据集来自 Coursera 类(class),如果是这样的话,我认为其他人也会遇到与我相同的问题,但在任何讨论中似乎都没有提及论坛或网上有类似问题。我唯一的猜测是这是我的函数代码的结果,如下所示:

corr <- function(directory, threshold = 0) {

vect1 <- numeric()
files_list <- list.files(directory, full.names = TRUE)

for (i in 1:332) {

data <- read.csv(files_list[i])
good <- complete.cases(data)
complete_data <- data[good,]
sulfate <- complete_data[,2]
nitrate <- complete_data[,3]

if (sum(complete_data) >= threshold) {
b <- cor(sulfate,nitrate)
vect1 <- rbind(b)
}
else vect1 <- (numeric())
}
return(vect1)
}

根据错误消息和回溯,我“认为”在硫酸盐和硝酸盐列上运行相关性时会发生错误。当我仅在目录中的第一个文件上运行代码时,它运行良好,没有错误消息。关于为什么会发生此错误以及如何修复它的任何帮助或见解都会有所帮助。

我试图将数据集强制转换为数字 -

complete_data <- as.numeric(data[good,])

但我收到了不同的错误消息“错误:(列表)对象不能被强制键入'double'”

最佳答案

答案是我无法对对象“complete_data”求和。我本想对逻辑向量“好”求和,但犯了一个错误并试图对错误的对象求和。我改用了complete_data的nrow计数,这解决了我的问题!

关于r - 试图理解 R 错误 : Error in FUN(X[[i]], ...) :仅在包含所有数字变量的数据框中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38032814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com