2012-11-27 7 views
6

Tôi có một cột số nguyên bao gồm dấu phân cách bằng dấu phẩy ở hàng nghìn. Khi tôi cố gắng tạo ra một cột số trong số đó, bất cứ thứ gì trên 999 đều trở thành NA.Giá trị số bao gồm dấu phẩy - làm cách nào để tạo các số này?

tôi đã sử dụng cbind:

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

và vết thương với:

 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 

Có cách nào để gỡ bỏ các dấu phẩy hay nói as.numeric làm thế nào để xử lý?

+3

bạn có thể sử dụng 'gsub'. 'gsub (',', '', var2)' – Justin

+2

@mnel Tôi nghĩ rằng điều đó sẽ khác? Nó sẽ không xử lý '1.000' giống như '1'? Trong khi Amanda đang nói rằng '1.000' nên được đối xử như' 1000' – Dason

+0

@ Dason, cũng được chọn. – mnel

Trả lời

9

Nếu bạn đang cố gắng để thêm một cột mới var2 để df, bạn có thể sử dụng sau đây

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

Tốt. Tôi thậm chí không cần cbind? – Amanda

+3

không, với khung dữ liệu bạn có thể chỉ định. 'df [[var2]] <- value' và' df $ var2 <- value' đều hoạt động. –

2

Sử dụng as.numeric(gsub(",", "", df$var1)).

Bạn muốn sử dụng gsub làm sub sẽ chỉ thay thế dấu phẩy đầu tiên.