gpt4 book ai didi

r - 如何将数据框中的所有数字字符串转换为 R 中的数字?

转载 作者:行者123 更新时间:2023-12-05 01:49:44 25 4
gpt4 key购买 nike

我是 R 的新手,我有一个从文件中读取的大型数据框。里面的数据有列数据都是“正常”字符串,比如“Iceland”,但它也有包含数字但作为字符串的列,比如“25.1”。有没有办法将所有仅包含数字的字符串转换为数字?

我知道如何为一列做这件事:var <- as.numeric(dataFrame$var)但这不是很有效,因为我的数据框有大约 160 列。

我尝试按如下方式转换整个数据框,但它不起作用:

DF2 <- lapply(DF1, function(x) {
ifelse(!is.na(suppressWarnings(as.numeric(x))), as.numeric(as.character(x)), x)
})

使用 DF2$colName 测试列返回“字符”,而不是“数字”。这似乎也将数据框变成了列表。

作为旁注,我已经使用 read.csv() 读取了数据框除了文件名之外没有任何参数。此外,列不会混合类型,它要么都是普通字符串,要么都是数字字符串。

谢谢!

最佳答案

我们可以使用type.convert函数

示例数据

df <- data.frame(a=c("2.1"), b='iceland')

检查原始示例数据中的类:

df |> lapply(\(x) class(x))

$a
[1] "character"

$b
[1] "character"

转型

df <- type.convert(df, as.is =TRUE)

测试输出

df |> lapply(\(x) class(x))

$a
[1] "numeric"

$b
[1] "character"

关于r - 如何将数据框中的所有数字字符串转换为 R 中的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73749551/

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