在 R 中将 data.frame 的列从“字符”强制转换为“数字”

问题描述 投票:0回答:1

我试图将数据框中的所有列强制为“数字”,作为在其上运行 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”

对正在发生的事情有什么想法吗?

r dataframe rstudio
1个回答
0
投票

正如 @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"
© www.soinside.com 2019 - 2024. All rights reserved.