我想将df的所有列从字符转换为数字。
例如:
A B C D
"1" "10.2" "0.2" "8"
"5" "2.1" "0.5" "6"
"3" "4.6" "0.3" "7"
将所有列(A,B,C,D)中的字符值转换为数字。谢谢!
答案 0 :(得分:5)
很多方法都是这样做的。我喜欢purrr
library(purrr)
df %>% map_if(is.character, as.numeric)
str(df)
'data.frame': 3 obs. of 4 variables:
$ A: num 1 5 3
$ B: num 10.2 2.1 4.6
$ C: num 0.2 0.5 0.3
$ D: num 8 6 7
答案 1 :(得分:1)
我们可以使用lapply
df[] <- lapply(df, function(x) if(is.character(x)) as.numeric(x)
else x)
如果我们知道所有列都是'字符'并且需要转换
df[] <- lapply(df, as.numeric)
答案 2 :(得分:0)
看看这个:R Convert quoted numbers to numeric
基本上,您可以使用apply()
函数与as.numeric()
连接,将数字转换为数字。
答案 3 :(得分:0)
我喜欢这样做。
data <- apply(df, 1, fun(x) as.numeric(x))