r - 如何用数千和数百万替换“k”和“m”?
问题描述
我有一个从 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)
)
推荐阅读
- python - Python Pandas Vlookup
- docker - 在 Dockerfile 中使用 '~' 导出路径
- css - FULLCALENDER SCHEDULER V5:事件标题包装
- pygame - 我有一个关于我的 pygame 中关于我要拍摄它的方向的问题的问题
- java - 在 Swift 中读取 Java 服务器发送的公钥
- file - 文件编码中 BOM 标记的对齐方式
- c++ - 使用函数洗牌矩阵(C++)
- ios - 在 iOS 移动应用中的 Google Cloud Storage 中流式传输视频对象
- oracle - 检查表是否重复的过程 - Oracle PL/SQL
- java - hibernate join 获取一对多的多个表