r - 从十亿转换为百万,反之亦然

标签 r dataframe

假设我有以下名为 DF 的数据框.我想转换 Revenue 中的所有值列到同一单位。

Brands   Revenue
A        50.1 bn
B        41.2 bn
C        32.5 Mn
D        15.1 bn

请注意 bnMn是向量的一部分。

最佳答案

一个想法,

new <- ifelse(gsub('.*\\s+', '', DF$Revenue) == 'bn',
              as.numeric(gsub('[A-Za-z]', '', DF$Revenue))*1000, DF$Revenue)

new[!grepl('Mn', new)] <- paste(new[!grepl('Mn', new)], 'Mn', sep = ' ')
DF$Revenue <- new

DF
#  Brands  Revenue
#1      A 50100 Mn
#2      B 41200 Mn
#3      C  32.5 Mn
#4      D 15100 Mn

做相反的事情,
new <- ifelse(gsub('.*\\s+', '', DF$Revenue) == 'Mn',
               as.numeric(gsub('[A-Za-z]', '', DF$Revenue))/1000, DF$Revenue)

 new[!grepl('bn', new)] <- paste(new[!grepl('bn', new)], 'bn', sep = ' ')
 DF$Revenue <- new
 DF
#  Brands   Revenue
#1      A   50.1 bn
#2      B   41.2 bn
#3      C 0.0325 bn
#4      D   15.1 bn

关于r - 从十亿转换为百万,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38013217/

相关文章:

sorting - 根据相似性度量(例如余弦相似性等)对 Holoviews 热图的列和行重新排序

python - 列出数据框列中存在的所有数据类型

r - 使用一行 R 脚本阻止 Kettle/Spoon 崩溃

在 R 中用 textclean 替换表情符号对我来说并不完全有效

r - R中字符之间添加空格

r - 优化具有许多 'layers' 的详细 map 的 Shiny + Leaflet 性能

r - 不重叠的抖动点

python - Pandas DataFrame 按分类列排序,但按特定类排序

python - self 加入 Pandas

python - Pandas 有条件创建系列/数据框列