将数据框的多列从字符串转换为 R 中的数字

Convert multiple columns of a data frame from string to numeric in R

我有一个包含 10 列数据(温度、湿度值等)的数据框。 R 将它们识别为字符串。我使用以下命令将其中一列转换为数字格式:

df$temp_out = as.numeric(df$temp_out)

问题是我还有另外 7 列也需要转换。我可以为其中的每一个都做,但我需要在大约 50 df 内完成,所以有点不方便。欢迎任何帮助!

我们可以使用 lapply 遍历列并应用 as.numeric

df[cols] <- lapply(df[cols], as.numeric)

其中

cols <- names(df)[4:10] # or column index (change the index if needed)

如果你喜欢使用 dplyr 另一种选择是使用 mutate_if():

df %>% mutate_if(is.character,as.numeric)

在具有多列的 r 中将字符数据框列更改为数字

df[, 4:17] <- lapply(df[, 4:17], as.numeric)

使用 tidyverse 仅转换数字列:

df <- df %>% mutate_if(is.numeric, as.numeric)