我试图将数据框中的所有列强制为“数字”,作为在其上运行 lm() 之前的步骤。其中一列被 R 读取为“字符”,所以我尝试了这个:
df <- data_frame
for (i in colnames(df)){
if (is.numeric(df[i]) == FALSE){
df[i] == as.numeric(df[i])
}
}
我收到此错误:
as.numeric(df[i]) 中的错误: 无法强制“list”对象输入“double”
对正在发生的事情有什么想法吗?
正如 @s_baldur 在他的评论中所述,您需要双
[[
才能将项目列表提取为向量。 [
只是原始列表的子集,即,它返回一个 list
:
> my_list <- list(X = c("A", "B"),
Y = 1:2,
Z = c(TRUE, FALSE))
> my_list[1]
$X
[1] "A" "B"
> class(my_list[1])
[1] "list"
> my_list[1:2]
$X
[1] "A" "B"
$Y
[1] 1 2
> class(my_list[1:2])
[1] "list"
> my_list[[1]]
[1] "A" "B"
> class(my_list[[1]])
[1] "character"