我有一个数据框,由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并将列的类别转换为数字的函数。
请,请帮助我!
例如
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)
)