【发布时间】:2023-01-27 02:22:20
【问题描述】:
我的数字变量如下所示:
u$a <- c(1234, 1432, 1456, 13467)
如何创建一个新变量 a1,它是变量 a 的前三个字符,这样它看起来像这样:
u$a1 <- c(123, 143, 145, 134)
谢谢你。
【问题讨论】:
-
使用整数除法
a%/%10
我的数字变量如下所示:
u$a <- c(1234, 1432, 1456, 13467)
如何创建一个新变量 a1,它是变量 a 的前三个字符,这样它看起来像这样:
u$a1 <- c(123, 143, 145, 134)
谢谢你。
【问题讨论】:
a%/%10
您可以先将其转换为 character,然后使用 substr 获取第一个到第三个字符,然后将其转换回 numeric,如下所示:
u$a1 <- as.numeric(substr(as.character(u$a), 1, 3))
u
#> a a1
#> 1 1234 123
#> 2 1432 143
#> 3 1456 145
#> 4 13467 134
创建于 2023-01-26 reprex v2.0.2
使用的数据:
u <- data.frame(a = c(1234, 1432, 1456, 13467))
【讨论】:
使用整数除法。即除以 10 而忽略余数
u$a1 <- u$a %/% 10
u
#> a a1
#> 1 1234 123
#> 2 1432 143
#> 3 1456 145
#> 4 13467 134
【讨论】:
使用sub
u$a1 <- as.numeric(sub("^(...).*", "\1", u$a))
【讨论】: