如何删除数据框列中的部分字符
How to remove part of characters in data frame column
我有一个数据框如下(较大集合的一部分):
data frame
对于 raw$Zipcode
列,我需要删除瑞典邮政编码的邮政编码前的两个 00
(最好通过函数)。我是 R 的新手,发现 gsub
和 strsplit
但似乎无法正常工作:
raw2 <- unlist(strsplit(raw$ZipCode, split="00", fixed=TRUE))[2]
零是字符,因为数据集中其他国家/地区都有字母。在列中的前两个字符字母为零的所有情况下,如何删除前两个零?
v <- c("00345", "00045", "12345", "12005")
sub("^0{2}", "", v)
# [1] "345" "045" "12345" "12005"
有多种方法可以做到这一点:
- 在您选择的列上使用
as.numeric
。
raw$Zipcode <- as.numeric(raw$Zipcode)
- 如果你想让它成为一个
character
那么你可以使用 stringr
包。
library(stringr)
raw$Zipcode <- str_replace(raw$Zipcode, "^0+" ,"")
stringr
包中还有一个函数叫做 str_remove
。
raw$Zipcode <- str_remove(raw$Zipcode, "^0+")
- 您也可以使用基础 R 中的
sub
。
raw$Zipcode <- sub("^0+", "", raw$Zipcode)
但是,如果您想删除 n
个前导零,请将 +
替换为 {n}
以删除它们。
例如删除两个 0 使用 sub("^0{2}", "", raw$Zipcode)
.
我有一个数据框如下(较大集合的一部分):
data frame
对于 raw$Zipcode
列,我需要删除瑞典邮政编码的邮政编码前的两个 00
(最好通过函数)。我是 R 的新手,发现 gsub
和 strsplit
但似乎无法正常工作:
raw2 <- unlist(strsplit(raw$ZipCode, split="00", fixed=TRUE))[2]
零是字符,因为数据集中其他国家/地区都有字母。在列中的前两个字符字母为零的所有情况下,如何删除前两个零?
v <- c("00345", "00045", "12345", "12005")
sub("^0{2}", "", v)
# [1] "345" "045" "12345" "12005"
有多种方法可以做到这一点:
- 在您选择的列上使用
as.numeric
。
raw$Zipcode <- as.numeric(raw$Zipcode)
- 如果你想让它成为一个
character
那么你可以使用stringr
包。
library(stringr)
raw$Zipcode <- str_replace(raw$Zipcode, "^0+" ,"")
stringr
包中还有一个函数叫做str_remove
。
raw$Zipcode <- str_remove(raw$Zipcode, "^0+")
- 您也可以使用基础 R 中的
sub
。
raw$Zipcode <- sub("^0+", "", raw$Zipcode)
但是,如果您想删除 n
个前导零,请将 +
替换为 {n}
以删除它们。
例如删除两个 0 使用 sub("^0{2}", "", raw$Zipcode)
.