【问题标题】:Converting units of measurment in R which contain different measurement units from string to numeric将R中包含不同测量单位的测量单位从字符串转换为数字
【发布时间】:2020-10-14 23:56:10
【问题描述】:

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

Var1
10 km
100 m
2.7 km
3 km
500 m

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

【问题讨论】:

    标签: r dataframe type-conversion data-cleaning data-conversion


    【解决方案1】:

    另一种方法:

    ifelse(grepl('k', Var1) == TRUE,  as.numeric(sub(" .*", "", Var1)) * 10^3, as.numeric(sub(" .*", "", Var1)))
    

    【讨论】:

      【解决方案2】:
      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”作为单位。如果您需要更多单位,您可以定义自己的函数来进行映射。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-08-01
        • 2013-04-09
        • 2011-11-26
        • 2019-03-20
        • 2019-02-03
        • 2021-02-23
        • 1970-01-01
        相关资源
        最近更新 更多