我有一个数据集,其中一些观测值以厘米为单位,有些以英寸为单位。我需要将所有值转换为英寸。数字在一列中,单位在另一列中。
height unit
12.0 in
15.0 in
45.0 cm
13.0 in
52.0 cm
61.0 cm
,基本上我只想要所有以英寸为单位。我应该使用某种 if 语句,还是将单位为 cm 的数据子集化?感谢您的任何帮助。
在 R 基数 1 中:
> dat$height[dat$unit=="cm"] <- dat$height[dat$unit=="cm"]*0.393701
> dat$unit <- "in"
> dat
height unit
1 12.00000 in
2 15.00000 in
3 17.71654 in
4 13.00000 in
5 20.47245 in
6 24.01576 in
R 基地 2:
dat$height <- with(dat, ifelse(unit == "cm", height * 0.393701, height))
使用 dplyr 更具可读性:
library(dplyr)
dat <- dat %>%
mutate(height = if_else(unit == "cm", height * 0.393701, height))
dt <- data.table(
height = c(12.0, 15.0, 45.0, 13.0, 52.0, 61.0),
unit = c("in", "in", "cm", "in", "cm", "cm")
)
dt[, height_in_inches := ifelse(unit == "cm", height / 2.54, height)]
dt
# height unit height_in_inches
# 1: 12 in 12.000
# 2: 15 in 15.000
# 3: 45 cm 17.717
# 4: 13 in 13.000
# 5: 52 cm 20.472
# 6: 61 cm 24.016
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(64条)