R ggplot。我有一堆代码,在数据帧中的实际数据之前需要一个0数字。我该怎么说呢?

R ggplot。我有一堆代码,在数据帧中的实际数据之前需要一个0数字。我该怎么说呢?,r,ggplot2,R,Ggplot2,我正在将一个数据帧绘制成一个shapefile映射,但我需要修复一堆这样的代码 嗯。地图有3个区域,通过代码识别。2个区域与代码配合良好,但所有以3开头的代码都不起作用。这些数字必须以03开头 因此,如果数据帧中有3002,我需要修复到03002。所以 有没有可能从R? 这是我的一段代码:在第一个3的位置用0修复的列称为“code2” dfcsv1和小示例: library(dplyr) t <- tibble(CODE = c("4444", "5555

我正在将一个数据帧绘制成一个shapefile映射,但我需要修复一堆这样的代码

嗯。地图有3个区域,通过代码识别。2个区域与代码配合良好,但所有以3开头的代码都不起作用。这些数字必须以03开头

因此,如果数据帧中有3002,我需要修复到03002。所以 有没有可能从R?

这是我的一段代码:在第一个3的位置用0修复的列称为“code2”

dfcsv1和小示例:

library(dplyr)

t <- tibble(CODE = c("4444", "55555","3333"))
t %>% 
  dplyr::mutate(CODE = case_when(nchar(CODE) == 3 ~ paste0("00", CODE),
                                 nchar(CODE) == 4 ~ paste0("0", CODE),
                                 TRUE ~ CODE))
库(dplyr)
t%
dplyr::mutate(CODE=case_,当(nchar(CODE)==3~0(“00”,CODE),
nchar(代码)==4~0(“0”,代码),
真~代码)
和小示例:

library(dplyr)

t <- tibble(CODE = c("4444", "55555","3333"))
t %>% 
  dplyr::mutate(CODE = case_when(nchar(CODE) == 3 ~ paste0("00", CODE),
                                 nchar(CODE) == 4 ~ paste0("0", CODE),
                                 TRUE ~ CODE))
库(dplyr)
t%
dplyr::mutate(CODE=case_,当(nchar(CODE)==3~0(“00”,CODE),
nchar(代码)==4~0(“0”,代码),
真~代码)

更简洁的方法是
stringr::str_-pad
:(注意默认值是在左侧“pad”。请参见
?str_-pad

库(dplyr)
图书馆(stringr)
t%
dplyr::mutate(CODE=str_pad(CODE,5,pad='0'))
#一个tible:3 x 1
代码
1 04444
2 55555
3 00333

更简洁的方法是
stringr::str_-pad
:(注意默认值是在左侧“pad”。请参见
?str_-pad

库(dplyr)
图书馆(stringr)
t%
dplyr::mutate(CODE=str_pad(CODE,5,pad='0'))
#一个tible:3 x 1
代码
1 04444
2 55555
3 00333

非常感谢您!我试过:library(dplyr)library(stringr)dfcsv1 dfcsv1%>%dplyr::mutate(dfcsv1$code2=str_pad(dfcsv1$code2,5,pad='0'))#但不起作用。
dfcsv1%dplyr::mutate(code2=str_pad(code2,5,pad='0'))
试试看,非常感谢!现在效果很好!!我对R:)非常陌生。当您使用管道(
%%>%%
)时,您不需要指示
dfcsv1$code2
,因为它已经知道您正在修改的数据帧。这是管道流的第一部分,因此您可以只包含字段
code2
。非常感谢!我试过:library(dplyr)library(stringr)dfcsv1 dfcsv1%>%dplyr::mutate(dfcsv1$code2=str_pad(dfcsv1$code2,5,pad='0'))#但不起作用。
dfcsv1%dplyr::mutate(code2=str_pad(code2,5,pad='0'))
试试看,非常感谢!现在效果很好!!我对R:)非常陌生。当您使用管道(
%%>%%
)时,您不需要指示
dfcsv1$code2
,因为它已经知道您正在修改的数据帧。它是管道流的第一部分,因此您可以只包含字段
code2
library(dplyr)
library(stringr)

t <- tibble(CODE = c("4444", "55555","333"))
t %>% 
  dplyr::mutate(CODE = str_pad(CODE, 5, pad = '0'))
# A tibble: 3 x 1
  CODE 
  <chr>
1 04444
2 55555
3 00333