如何将data.frame转换为r中的原子向量

时间:2016-04-12 12:47:51

标签: r vector dataframe

我有以下数据对象。对象名称是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

为什么会发生这种错误,我不知道

1 个答案:

答案 0 :(得分:3)

我们可以使用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这样的元素将是&#39;字符&#39;元素以及当我们转换为&#39;数字&#39;使用as.numeric时,由于,,它会强制转换为NA。没有error消息。友好warning ,移除sub,然后执行as.numeric

注意:如果元素中有多个,,请使用gsub代替sub