我对 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)
})
Run Code Online (Sandbox Code Playgroud)
测试列DF2$colName返回“字符”,而不是“数字”。这似乎也将数据框变成了列表。
作为旁注,我已使用read.csv()除文件名之外的任何参数读取数据帧。此外,列不混合类型,它要么都是普通字符串,要么都是数字字符串。
谢谢你!