【发布时间】:2018-07-16 23:58:39
【问题描述】:
我有一个非常大的数据集,其中一些列格式化为货币、一些数字、一些字符。在读取数据时,所有货币列都被标识为因子,我需要将它们转换为数字。数据集太宽,无法手动识别列。我试图找到一种编程方式来识别列是否包含货币数据(例如以“$”开头),然后传递要清理的列列表。
name <- c('john','carl', 'hank')
salary <- c('$23,456.33','$45,677.43','$76,234.88')
emp_data <- data.frame(name,salary)
clean <- function(ttt){
as.numeric(gsub('[^a-zA-z0-9.]','', ttt))
}
sapply(emp_data, clean)
此示例中的问题是,此 sapply 适用于所有列,导致名称列被替换为 NA。我需要一种以编程方式仅识别需要应用清理函数的列的方法。在这个示例中,薪水。
【问题讨论】:
标签: r currency data-cleaning