转换单位(ft到cm)作为R中的整数输入

时间:2017-11-17 20:09:11

标签: r units-of-measurement

我尝试在R中编写一个函数,将以不同单位输入的高度转换为厘米。

在数据帧中,高度以厘米(例如175),米(例如1.83)或英尺和英寸(例如5英尺4,甚至5英尺9.5)输入。 我需要做的是将包含字符(" ft"或"。")的因子转换为整数,但我不知道如何实际处理它。

任何帮助都非常受欢迎:)

1 个答案:

答案 0 :(得分:0)

这可能有用。

  library(dplyr)
  library(stringr)

  df <- tibble(measurementType = c("feet", "cm", "m"), height = c("5ft8.5", 175, 1.83))

  df %>% mutate(height = ifelse(measurementType == "feet",
                                 as.numeric(unlist(str_split(height, "ft"))[1]) * 12 + as.numeric(unlist(str_split(height, "ft"))[2]), 
                                as.numeric(height))) %>% 
       mutate(heightInCm = case_when(measurementType == "feet" ~ height * 2.54,
                                     measurementType == "m" ~ height * 100,
                                     TRUE ~ height))