我正在尝试对“市值”列进行总和,但我无法做到,因为它是一个数据框,并且数字末尾有一个 B。
如果我的数据框被称为 Y 计算 533.5 + 15.449 之和所需的代码是什么?
sum( as.numeric( sub("B$", "", as.character(Y$Capitalization) ) ) )
如果对可能的 'MM' 或 'M' 条目提出的担忧是有效的,您可能需要执行一组级联sub
调用:
sum( as.numeric( sub("B$", "000000000",
sub("MM", "000000", as.character(Y$Capitalization) ) ) ) )
(这将取决于“B”、“MM”和“M”对构建数据的人的实际含义。)
这是我能想到的“正则表达式”模式的更简单用途之一。模式“B$”将匹配字符向量元素中的最后一个 B。因为整个向量将通过这些函数,所以不需要循环。我想可以简单地使用“B”,这将删除“3BB”中的所有B,“6BxB”中的“4BBB”。