根据R中的条件对列中的某些元素进行除法

时间:2017-03-10 04:23:22

标签: dataframe

我开始使用R并寻找帮助,我从HTML页面中提取了此列。

Brand_Value
200 M
400 M
2   B
5   B
150 M

正如您所看到的,有些项目数以百万计,有些则数十亿。我想将所有百万个值转换为十亿(即除以1000)并删除字符BM。最后,这应该是:

Brand_Value
0.2
0.4
2 
5 
0.15

任何指示赞赏,谢谢!。

此致

[R

1 个答案:

答案 0 :(得分:0)

这不是最简洁的解决方法,但如果列只包含数百万和数十亿(“M”和“B”)的值,它应该有效:

new_vector<-NA
test<-NA

for (i in 1:length(vector)) {

test <- grepl("M",vector)

if(test[i]==T) {
  new_vector[i] <- as.numeric( gsub("M", "", vector[i]) )*1000000
} else {
  new_vector[i] <- as.numeric( gsub("B", "", vector[i]) )*1000000000
}
}

new_vector