r - 将以英寸为单位的高度字符向量转换为厘米?

标签 r unit-conversion

我得到一个字符向量:

tibble(H = c("6'2\"", "5'10\"", "5'5\"", "5'1\"", "5'5\"", "5'4\""))

我想把它转换成厘米。

请告知我该怎么做?

最佳答案

有几种方法可以使用

1) 粘贴成单个字符串后用 fread 读取

library(data.table)
fread(paste(sub('"', "", df1$H), collapse="\n"), sep="'")[, 
               as.matrix(.SD) %*% c(30.48, 2.54)][,1]
 #[1] 187.96 177.80 165.10 154.94 165.10 162.56

2) 使用 gsubfn

library(gsubfn)
as.numeric(gsubfn("(\\d)'(\\d+)", ~ as.numeric(x) * 30.48 + 
            as.numeric(y) * 2.54, sub('"', '', df1$H)))
 #[1] 187.96 177.80 165.10 154.94 165.10 162.56

3)分开

library(tidyverse)
df1 %>% 
    separate(H, into = c("H1", "H2"), convert = TRUE) %>%
    transmute(H = H1 * 30.48 + H2 * 2.54)
# A tibble: 6 x 1
#      H
#  <dbl>
#1  188.
#2  178.
#3  165.
#4  155.
#5  165.
#6  163.

4)measurements

library(measurements)
library(tidyverse)
df1 %>% 
   separate(H, into = c("H1", "H2"), convert = TRUE) %>%
   transmute(H = conv_unit(H1, "ft", "cm") + conv_unit(H2, "inch", "cm"))

关于r - 将以英寸为单位的高度字符向量转换为厘米?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55244198/

相关文章:

r - R 中的表操作 - dplyr/tidyverse 解决方案

c# - 数据变化发生在单位换算中

PDFBox 将英寸或厘米转换为坐标系

css - 从像素转换为 em

c# - 单位转换器 C#

perl - Perl 中的对称和传递自定义单位转换

r - 如何矢量化: set a value based on last time a binary vector was 1

r - dplyr:过滤标记时间段之前的几年内

r - nls() 的后续步骤?

javascript - 如何在 R Shiny 应用程序中添加 JavaScript 来更改 CSS 文件