I have a data frame as follows (part of a larger set):
for the column raw$Zipcode I need to remove the two 00 before the Zipcode number for Swedish zipcodes (preferably through a function). I am very new to R and have found gsub and strsplit but can't seem to make it work:
raw2 <- unlist(strsplit(raw$ZipCode, split="00", fixed=TRUE))[2]
The zeroes are characters as other countries in the data set have letters. How can I remove the first two zeroes in all cases of the two first character letters being zeroes in a column?
CodePudding user response:
There are multiple ways of doing this:
- Using
as.numericon a column of your choice.
raw$Zipcode <- as.numeric(raw$Zipcode)
- If you want it to be a
characterthen you can usestringrpackage.
library(stringr)
raw$Zipcode <- str_replace(raw$Zipcode, "^0 " ,"")
- There is another function called
str_removeinstringrpackage.
raw$Zipcode <- str_remove(raw$Zipcode, "^0 ")
- You can also use
subfrom base R.
raw$Zipcode <- sub("^0 ", "", raw$Zipcode)
But if you want to remove n number of leading zeroes, replace with {n} to remove them.
For instance to remove two 0's use sub("^0{2}", "", raw$Zipcode).
CodePudding user response:
v <- c("00345", "00045", "12345", "12005")
sub("^0{2}", "", v)
# [1] "345" "045" "12345" "12005"
