从 R 中的字母数字字符串中获取数字字符?
Get the numeric characters from alphanumeric string in R?
可能重复:1 2
我看了上面的讨论。
我想使用 R 从字母数字字符串中获取所有数字字符?
我的代码:
> y <- c()
> x <- c("wXYz04516", "XYz24060", "AB04512", "wCz04110", "wXYz04514", "wXYz04110")
> for (i in 1:length(x)){
+ y <- c(as.numeric(gsub("[a-zA-Z]", "", x[i])),y)
+ }
> print (y)
[1] 4110 4514 4110 4512 24060 4516
这里输出了所有的数字章程,但是没有得到起始数字零(“0”)
The output omits starting Zero ("0") digit in case of 4110, 4514, 4110, 4512, and 4516.
如何在数字前添加数字零?
整数值不允许有前导零。所以要有前导零,你必须将它们保留为字符。但是,如果需要,您可以不带引号打印它们。
x <- c("wXYz04516", "XYz24060", "AB04512", "wCz04110", "wXYz04514")
gsub("\D+", "", x)
# [1] "04516" "24060" "04512" "04110" "04514"
as.numeric(gsub("\D+", "", x))
# [1] 4516 24060 4512 4110 4514
print(gsub("\D+", "", x), quote = FALSE)
# [1] 04516 24060 04512 04110 04514
所以最后一个看起来像一个数字,但实际上是一个字符。
旁注: gsub()
和 as.numeric()
都是向量化函数,因此在此操作中也不需要 for()
循环.
如果您想要前导零,则需要创建一个字符向量而不是数字一,因此将 as.numeric
更改为 as.character
。
可能重复:1 2
我看了上面的讨论。
我想使用 R 从字母数字字符串中获取所有数字字符?
我的代码:
> y <- c()
> x <- c("wXYz04516", "XYz24060", "AB04512", "wCz04110", "wXYz04514", "wXYz04110")
> for (i in 1:length(x)){
+ y <- c(as.numeric(gsub("[a-zA-Z]", "", x[i])),y)
+ }
> print (y)
[1] 4110 4514 4110 4512 24060 4516
这里输出了所有的数字章程,但是没有得到起始数字零(“0”)
The output omits starting Zero ("0") digit in case of 4110, 4514, 4110, 4512, and 4516.
如何在数字前添加数字零?
整数值不允许有前导零。所以要有前导零,你必须将它们保留为字符。但是,如果需要,您可以不带引号打印它们。
x <- c("wXYz04516", "XYz24060", "AB04512", "wCz04110", "wXYz04514")
gsub("\D+", "", x)
# [1] "04516" "24060" "04512" "04110" "04514"
as.numeric(gsub("\D+", "", x))
# [1] 4516 24060 4512 4110 4514
print(gsub("\D+", "", x), quote = FALSE)
# [1] 04516 24060 04512 04110 04514
所以最后一个看起来像一个数字,但实际上是一个字符。
旁注: gsub()
和 as.numeric()
都是向量化函数,因此在此操作中也不需要 for()
循环.
如果您想要前导零,则需要创建一个字符向量而不是数字一,因此将 as.numeric
更改为 as.character
。