首页 > 解决方案 > 将R中包含不同测量单位的测量单位从字符串转换为数字

问题描述

我有一个数据框,其中一个字符变量如下所示:

Var1
10 km
100 m
2.7 km
3 km
500 m

将这个变量转换为数字但同时将所有以公里为单位的值转换为米的最佳方法是什么?

标签: rdataframetype-conversiondata-cleaningdata-conversion

解决方案


Var1 <- c("10 km", "100 m", "2.7 km", "3 km", "500 m")
strsplit(Var1, " ")
sapply(strsplit(Var1, " "), function(x) ifelse(x[2] == "km", as.numeric(x[[1]])*1000, as.numeric(x[[1]])))

[1] 10000   100  2700  3000   500

此解决方案仅接受“m”和“km”作为单位。如果您需要更多单位,您可以定义自己的函数来进行映射。


推荐阅读