[英]Can not convert character to numeric in R
我正在努力将字符向量转换为R中的数字。我使用以下命令从csv导入数据帧:
a = read.csv('myData.csv', header=T, stringsAsFactors=F)
我的因素之一fac1
是数字的向量,但包含“ na”和“ nr”的某些实例。 因此, typeof(a$fac1)
返回"character"
我创建一个没有“ na”和“ nr”条目的新数据框
k = a[a$fac1 != "na" & a$fac1 != "nr", ]
然后,我尝试使用以下方法将fac1
转换为数字:
k$fac1_num = as.numeric(k$fac1)
问题是这不起作用,因为typeof(k$fac1_num)
现在返回"double"
而不是"numeric"
任何人都可以提出修复建议/指出我做错了什么吗? 提前致谢!
尝试仅强制转换为数字:
a = read.csv('myData.csv', header=T, stringsAsFactors=F)
a$fac1_num = as.numeric(a$fac1)
如果您需要子集(通常不需要,并且我建议不要执行常规操作,因为了解其他列值会告诉您数据背后的“真实性”可能会有所帮助),那么就可以:
k <- a[ !is.na(a$fac1_num) , ]
这样,你仍然会在原来的字符值a
数据对象,如果需要可以检查它的值。 “数字”的正确检验是is.numeric
尝试将sapply与mode一起使用:
sapply(your_df, mode)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.