繁体   English   中英

无法在R中将字符转换为数字

[英]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

尝试将sapplymode一起使用:

sapply(your_df, mode)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM