如何删除数据框列中的部分字符

How to remove part of characters in data frame column

我有一个数据框如下(较大集合的一部分):

data frame

对于 raw$Zipcode 列,我需要删除瑞典邮政编码的邮政编码前的两个 00(最好通过函数)。我是 R 的新手,发现 gsubstrsplit 但似乎无法正常工作:

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"

有多种方法可以做到这一点:

  1. 在您选择的列上使用 as.numeric
raw$Zipcode <- as.numeric(raw$Zipcode)
  1. 如果你想让它成为一个 character 那么你可以使用 stringr 包。
library(stringr)
raw$Zipcode <- str_replace(raw$Zipcode, "^0+" ,"")
  1. stringr 包中还有一个函数叫做 str_remove
raw$Zipcode <- str_remove(raw$Zipcode, "^0+")
  1. 您也可以使用基础 R 中的 sub
raw$Zipcode <- sub("^0+", "", raw$Zipcode)

但是,如果您想删除 n 个前导零,请将 + 替换为 {n} 以删除它们。

例如删除两个 0 使用 sub("^0{2}", "", raw$Zipcode).