2012-11-27 12 views
6

Binlerce virgül ayıracı içeren tam bir sayı sütunum var. Onlardan sayısal bir sütun oluşturmaya çalıştığımda, 999'dan fazla bir şey NA olur.Sayı değerleri virgül içerir - bu sayısalları nasıl yapabilirim?

Ben cbind kullandı:

df <- cbind(df, var2 = as.numeric(as.character(df$var1))) 

ve ile yara:

 var1 var2 
1 2,518.50 NA 
2 2,518.50 NA 
3 5,018.50 NA 
4 4,018.50 NA 
5 10,018.50 NA 
6  318.50 318.5 
7 2,518.50 NA 
8 3,518.50 NA 
9 7,518.50 NA 
10 1,018.50 NA 

virgül şerit veya bunların nasıl ele as.numeric anlamanın bir yolu var mı? Yeni bir sütun var2df eklemek çalışıyorsanız

+3

'gsub' kullanabilirsiniz. gsub (',', '', var2) ' – Justin

+2

@mnel Bence farklı bir şey yapar mıyım? Bu "1" ile aynı şeyi tedavi etmez mi? Amanda diyor ki '1000' 10001 – Dason

+0

@ Dason gibi ele alınmalı. – mnel

cevap

9

, aşağıdaki

df$var2 <- as.numeric(gsub(",", "", as.character(df$var1))) 
+1

Nice de isteyebilirsiniz. Cbind'e bile ihtiyacım yok mu? – Amanda

+3

nope, sadece veri atayarak atayabilirsiniz. df [[var2]] <- değer 've 'df $ var2 <- değer' her iki çalışma. –

2

kullanın as.numeric(gsub(",", "", df$var1)) kullanabilirsiniz.

gsub'u sub olarak kullanmak istiyorsanız, yalnızca ilk virgül değiştirilecektir.

İlgili konular