2016-04-12 19 views
1

Aşağıdaki veri nesnesine sahibim. Nesne adı aşağıdaki gibi I koddata.frame'in atomik vektöre dönüştürülmesi

for(i in 1:7){ 
h[i]<-as.numeric(seoul1[2,][[i]]) 
    } 

ama sonuç 'için' kullanılan

tamsayı veya çift oluşan atomik vecter bu verileri dönüştürme için

V3 V4 V5  V6 V7 V8 V9 
    531 789 894 1,447 1,202 1,186 501 

typeof = list, class = data.frame 

seoul1 olan

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 

bu hatanın neden oluştuğunu bilmiyorum,

+1

sub kullanımı ("1447")' ... – jogo

cevap

3

vector oluşturmak için unlist'u kullanabilir ve ,'u kaldırdıktan sonra numeric'a dönüştürebiliriz. OP'ın örnek veri kümesinde

as.numeric(sub(",", "", unlist(seoul1[2,], use.names=FALSE))) 
#[1] 531 789 894 1447 1202 1186 501 

, 'karakter' unsurlar olacaktır l,447, 1,202, 1,186 gibi unsurlar vardır ve biz as.numeric ile 'sayısal' dönüştürmek zaman, NA çünkü , arasında zorlamak olacaktır. error mesaj yok. warning ,'u sub ile kaldırın ve as.numeric'u yapın.

NOT: Bir elemanın içinde , birden varsa uyarılar nedeniyle as.numeric `vardır gsub yerine