R,将M前缀扩展为1000

时间:2015-04-01 07:02:33

标签: r

我的数据框的一列包含数值,其中一些包含“M”前缀,用于10 ^ 6表示。

>col
...
[1177] "38141"  "39171"  "37019"  "38396"  "28390"  "29157"  "10876"  "28307"  "0"      "0"      "0"      "1.4 M" 
[1189] "0"      "0"      "1.5 M"  "36660"  "37650"  "94"     "89672"  "89898"  "34962"  "35907"  "40170"  "41255" 

如何扩展它们以便我可以制作完整的数值列? 最初我使用strsplit和temp变量将它们存储为单独的列表

>spl_col<-strsplit(col, " ")

但随后我最终得到了一些包含2个值的键。不知道接下来该做什么。 非常感谢任何帮助

2 个答案:

答案 0 :(得分:1)

我会用M替换e6(注意空格)并将其强制转换为数字。

> x <- c("3", "4", "1.5 M")
> as.numeric(gsub(pattern = " M", replacement = "e06", x = x))
[1]       3       4 1500000

答案 1 :(得分:0)

使用gsub您可以删除特殊字符:

as.numeric(gsub('M| +','',c("1.5 M","1.4 M")))
[1] 1.5 1.4