我正在尝试“市场资本化”栏目的总和,但我无法,因为它是一个数据框,并且数字最后有一个B.
如果我的数据框被称为Y,那么计算533.5 + 15.449之和所需的代码是什么等等?
答案 0 :(得分:6)
sum( as.numeric( sub("B$", "", as.character(Y$Capitalization) ) ) )
如果引起关注可能的MM' MM'或者' M'条目有效您可能想要进行一组级联sub
来电:
sum( as.numeric( sub("B$", "000000000",
sub("MM", "000000", as.character(Y$Capitalization) ) ) ) )
(这取决于' B'' MM'以及' M'实际上对构建数据的人意味着什么。)
这是'正则表达式'更简单的用法之一。我能想到的模式。模式" B $"将匹配字符向量元素中的最后一个B.因为整个向量将通过这些函数,所以不需要循环。我想人们可以简单地使用" B",这将删除所有 B" 3BB"," 4BBB" in" 6BxB"。