cannot coerce class function to a data.frame
这个报错是为什么,应该怎么修过
这个报错通常是由于将函数(function)对象错误地赋值给了数据框(data.frame)变量所导致的。请检查代码中是否有类似以下的错误操作:
# 错误的示例
df <- data.frame(x = 1:10, y = function(x){ x^2 })
# 报错信息
# Error in as.data.frame.default(x[[i]], optional = TRUE) :
# cannot coerce class ‘function’ to a data.frame
在这个错误的示例中,我们将一个函数 x^2 错误地赋值给了数据框变量 y,导致报错。
要修复这个错误,需要确保变量的赋值是正确的。在数据框中,每一列的元素应该是同一种类型,例如数字、字符、逻辑值等。如果需要使用函数计算某一列的元素值,可以使用 apply 等函数来实现。例如:
# 正确的示例
df <- data.frame(x = 1:10, y = NA)
df$y <- apply(df, 1, function(row){ row["x"]^2 })
答案来自 我点评开发社区 https://www.wodianping.com/
在这个正确的示例中,我们首先创建了一个只有一列 x 的数据框,并将 y 列初始化为 NA。然后,我们使用 apply 函数按行计算 x 列的平方,并将结果赋值给 y 列。这样,我们就得到了正确的数据框。