如何用成千上万的替换“ k”和“ m”?

问题描述 投票:0回答:1

我有一个数据框,由Coursera解析。列之一是该课程的注册学生人数。看起来像这样:

df <- data.frame(uni = c("Yale", "Toronto", "NYU"), students = c("16m", "240k", "7.5k"))

      uni students
1    Yale     "16m"
2 Toronto     "240k"
3     NYU     "7.5k"

我需要得到的是

      uni students
1    Yale     16000000
2 Toronto     240000
3     NYU     75000

所以,对我而言,主要困难在于值的类别是字符,并且我不知道用于替换ks和ms并将列的类别转换为数字的函数。

请,请帮助我!

r dataframe parsing replace converters
1个回答
0
投票

例如

d$students <- dplyr::case_when(
  stringr::str_detect(d$students, 'm') ~ readr::parse_number(d$students) * 1e6,
  stringr::str_detect(d$students, 'k') ~ readr::parse_number(d$students) * 1e3,
  TRUE ~ parse_number(d$students)
)
© www.soinside.com 2019 - 2024. All rights reserved.