我有一个字符模式和类的数据框列 x 。列中的元素都是数值。我试图将列值从字符转换为数字,但是当我键入as.numeric(x)
时,只有整数值保持为数字,所有非整数值(即3.14)都在NA中强制转换。为什么?如何将其转换为数值列,避免强制转换为NA?
这是dput(PercentageCont)
:
c("50,9", "56,9", "64", "57", "61,4",......)
当我执行as.numeric时,所有浮点值都被强制转换为NA。
答案 0 :(得分:1)
问题在于逗号。这是我的解决方案:
# convert comma to dot
dot = gsub(",","\\.", c("50,9", "56,9", "64"))
[1] "50.9" "56.9" "64"
# transform string into numeric
as.numeric(dot)
[1] 50.9 56.9 64.0