我在RStudio中有一个Height列,它包含character个字符串(例如188厘米)以及一些以英尺和英寸为单位的条目(例如5‘11")!脏数据..

我的问题是:如何从列中删除"厘米"单位,并将英尺/英寸行转换为保持列一致性所需的数字厘米值?我希望整个列的值严格以厘米(如188)为单位.谢谢您抽时间见我!我是一名初级数据分析师,已经独自完成了一个 case 研究,但这项看似简单的任务却让我望而却步.请记住,我有18,979个条目,因此我需要一个代码来处理整个专栏.谢谢!

我使用:

gsub("cm","",paste(fifa21_v2$Height))

这就产生了一个go 掉了"cm"的表格(好消息) 但后来我注意到英尺/英寸的变量,然后出现了"6 '0""(不好)

dput(fifa21_v2$Height[820:875])
    c("195cm", "179cm", "191cm", "170cm", "182cm", "195cm", "178cm", 
    "187cm", "187cm", "190cm", "188cm", "198cm", "180cm", "172cm", 
    "189cm", "192cm", "179cm", "184cm", "186cm", "178cm", "173cm", 
    "176cm", "173cm", "187cm", "182cm", "186cm", "188cm", "170cm", 
    "6'3\"", "6'5\"", "185cm", "179cm", "195cm", "179cm", "185cm", 
    "174cm", "183cm", "180cm", "181cm", "186cm", "178cm", "5'11\"", 
    "6'4\"", "6'1\"", "6'0\"", "6'1\"", "5'11\"", "6'2\"", "6'0\"", 
    "6'3\"", "6'0\"", "184cm", "5'10\"", "5'9\"", "5'11\"", "5'6\""
    )

推荐答案

我认为,如果您只有这两种格式,这样的格式应该可以运行:

a <- data.frame(Height = c("195", "6'0"))

library(tidyverse)
a |>
  separate(Height, c("Feet", "Inches"), sep = "'", convert = TRUE, remove = FALSE) |>
  mutate(Height2 = if_else(is.na(Inches), as.numeric(Height), 
                           round((Feet + Inches/12)*30.48)))

结果(FeetInches列只是中间列,我们可以在以后删除它们.当输入已经以厘米为单位时,我没有费心清理Feet列.)

  Height Feet Inches Height2
1    195  195     NA     195
2    6'0    6      0     183

R相关问答推荐

geom_Ribbon条件填充创建与数据不匹配的形状(ggplot 2 r)

寻找图片边缘

在垂直轴中包含多个ggplot2图中的平均值

当两个图层映射到相同的美学时,隐藏一个图层的图例值

lightgbm发动机在tidymmodels中的L1正则化""

从所有项的 struct 相同的两级列表中,将该第二级中的所有同名项绑定在一起

R中的时间序列(Ts)函数计数不正确

在嵌套列表中查找元素路径的最佳方法

计算两列中满足特定条件连续行之间的平均值

给定开始日期和月份(数字),如何根据R中的开始日期和月数创建日期列

如何创建累加到现有列累计和的新列?

如何将一些单元格的内容随机 Select 到一个数据框中?

通过初始的shiny 应用更新部署的shiny 应用的数据和参数,其中部署的应用程序显示为URL

在ggploy中创建GeV分布时出错

如何用不同长度的向量填充列表?

通过匹配另一个表(查找表)中的列值来填充数据表,并在另一个变量上进行内插

将R中对象的CSV数组转换为JSON数组

如何将两个用不同的运算符替换*的矩阵相乘

创建两个变量组合的索引矩阵

将`magick`对象转换为原始向量