我有以下数据对象。对象名称是seoul1
V3 V4 V5 V6 V7 V8 V9
531 789 894 1,447 1,202 1,186 501
typeof = list, class = data.frame
我想将这些数据转换为由整数或双精度数组成的原子矢量
我使用了“ for”代码
for(i in 1:7){
h[i]<-as.numeric(seoul1[2,][[i]])
}
但结果如下
for(i in 1:7){
h[i]<-as.numeric(seoul1[2,][[i]])
}
Warning messages:
1: NAs introduced by coercion
2: NAs introduced by coercion
3: NAs introduced by coercion
print(h)
[1] 531 789 894 NA NA NA 501
为什么会发生此错误,我不知道
我们可以使用unlist
创建一个vector
,然后numeric
在删除后将其转换为,
。
as.numeric(sub(",", "", unlist(seoul1[2,], use.names=FALSE)))
#[1] 531 789 894 1447 1202 1186 501
在OP的示例数据集中,有类似的元素l,447, 1,202, 1,186
将是'character'元素,当我们将其转换为'numeric'时as.numeric
,由于,它将强制转换为NA ,
。没有任何error
讯息。这是一个友好warning
的操作,,
用删除sub
,然后执行as.numeric
。
注意:如果,
一个元素中有多个,请使用gsub
而不是sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句