如何删除R中下一列中右侧(0)的第二个数字?200517302 200517801 200519101 200519702 200521002 200521205

如何删除R中下一列中右侧(0)的第二个数字?200517302 200517801 200519101 200519702 200521002 200521205,r,R,如何删除R中变量右侧(0)的第二个数字 17302, 17801, 19101, 19702, 21002, 21205我们可以使用sub来匹配字符串末尾($)作为组捕获的字符(())后面的字符(),并替换为捕获组的反向引用(\\1) as.numeric(sub(".(.)$", "\\1", v1)) #[1] 1732 1781 1911 1972 2102 2125 或者更紧凑地使用str\u remove library(stringr) as.numeric(str_remove

如何删除R中变量右侧(0)的第二个数字

17302, 17801, 19101, 19702, 21002,
21205

我们可以使用
sub
来匹配字符串末尾(
$
)作为组捕获的字符(
()
)后面的字符(
),并替换为捕获组的反向引用(
\\1

as.numeric(sub(".(.)$", "\\1", v1))
#[1] 1732 1781 1911 1972 2102 2125

或者更紧凑地使用
str\u remove

library(stringr)
as.numeric(str_remove(v1, ".(?=.$)"))
注意:如果特定于0,则将
替换为
0
,即

as.numeric(str_remove(v1, "0(?=.$)"))
数据
v1我们可以使用
sub
匹配字符串末尾(
$
)作为组捕获的字符(
()
)后面的字符(
),并替换为捕获组的反向引用(
\\1

as.numeric(sub(".(.)$", "\\1", v1))
#[1] 1732 1781 1911 1972 2102 2125

或者更紧凑地使用
str\u remove

library(stringr)
as.numeric(str_remove(v1, ".(?=.$)"))
注意:如果特定于0,则将
替换为
0
,即

as.numeric(str_remove(v1, "0(?=.$)"))
数据
v1如果最后第二个数字是
0
,则可以执行以下操作:

x <- c(17302, 17801, 19101, 19702, 21002, 21205)

x %% 10 +x %/% 10 

[1] 1732 1781 1911 1972 2102 2125

x如果最后第二个数字是
0
,则可以执行以下操作:

x <- c(17302, 17801, 19101, 19702, 21002, 21205)

x %% 10 +x %/% 10 

[1] 1732 1781 1911 1972 2102 2125

x如果不是
0
-
x%/%100*10+x%%10
如果不是
0
-
x%/%100*10+x%%10