簡體   English   中英

如何刪除數據框列中的部分字符

[英]How to remove part of characters in data frame column

我有一個如下數據框(較大集合的一部分):

數據框

對於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 package。
library(stringr)
raw$Zipcode <- str_replace(raw$Zipcode, "^0+" ,"")
  1. 在 stringr package 中還有另一個名為str_removestringr
raw$Zipcode <- str_remove(raw$Zipcode, "^0+")
  1. 您還可以使用來自基礎 R 的sub組件。
raw$Zipcode <- sub("^0+", "", raw$Zipcode)

但是,如果要刪除n個前導零,請將+替換為{n}以刪除它們。

例如要刪除兩個 0,請使用sub("^0{2}", "", raw$Zipcode)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM