我对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()
读取数据框时没有使用除文件名之外的任何参数。此外,列不混合类型,它们要么全部是普通字符串,要么全部是数值字符串。
谢谢!
DF2[] <- lapply(DF1, ...
- GuedesBF