我正在试着在一个县的层面上制作一张全息地图。每个县都有一个唯一的id。我需要将数据集中的ID合并为该县地理信息的ID。数据集的county_id为4位数字,例如1001。地理数据在ID 01001中。所有5位数的county_ids都是正确的。
下面是我的解决方案,但我假设有更好的方法来做到这一点。请教我一种更有效率的方法。
library(tidyverse)
library(urbnmapr)
library(janitor)
broadband <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2021/2021-05-11/broadband.csv') %>%
clean_names()
broadband_4_digits <- broadband %>%
mutate(id_length = str_length(county_id)) %>%
filter(id_length == 4) %>%
mutate(county_fips = paste0("0",county_id))
broadband_5_digits <- broadband %>%
mutate(id_length = str_length(county_id)) %>%
filter(id_length == 5) %>%
mutate(county_fips = county_id)
broadband <- rbind(broadband_4_digits, broadband_5_digits)
broadband <- broadband %>%
right_join(counties, by = "county_fips")发布于 2021-10-07 05:04:34
我们可以通过一个对sub的调用来处理这个问题
broadband$county_id <- sub("^\\d{4}$", paste0("0", broadbad$county_id), broadbad$county_id)或者我们可以只使用sprintf
broadband$county_id <- sprintf("%05d", broadband$county_id)发布于 2021-10-07 05:06:26
您可以使用stringr库中的str_pad函数:
library(stringr)
str_pad(as.character(c(1001,10001)), pad = "0",width = 5)1 "01001“"10001"
https://stackoverflow.com/questions/69475692
复制相似问题