无法将R中的字符转换为数字
我正在努力将R中的字符向量转换为数字。我使用以下命令从csv导入数据帧:无法将R中的字符转换为数字,r,R,我正在努力将R中的字符向量转换为数字。我使用以下命令从csv导入数据帧: a = read.csv('myData.csv', header=T, stringsAsFactors=F) 我的因子之一,fac1,是一个数字向量,但包含一些“na”和“nr”的实例。因此,typeof(a$fac1)返回“字符” 我创建了一个没有“na”和“nr”条目的新数据帧 然后,我尝试使用以下命令将fac1转换为数字: k$fac1_num = as.numeric(k$fac1) 问题是这不起作用,因为
a = read.csv('myData.csv', header=T, stringsAsFactors=F)
我的因子之一,fac1
,是一个数字向量,但包含一些“na”和“nr”的实例。因此,typeof(a$fac1)
返回“字符”
我创建了一个没有“na”和“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) , ]
k尝试在模式下使用sapply:
sapply(your_df, mode)
我认为你做的一切都对,只是R关于类型的术语有点…复杂,有时typeof
从不返回numeric
。与class()
(请务必阅读这两个函数的文档!)的结果进行比较。啊,这消除了很多混淆!我认为对我的数据进行子设置也会导致一个问题-因此,在使用typeof
时,使用as.numeric而不使用任何子设置(如下面的答案所示)仍然返回字符
,但class
返回的是数值
。谢谢
sapply(your_df, mode)