我在数据框中有一列是字符类型。变量是 1、01、2、01、3、03、4、04 等的混合。
我如何选择没有前导“0”和格式的所有内容,以便它们都是 01、02、03、04 等
我们需要首先将其转换为numeric并使用sprintf
df1$col1 <- sprintf("%02d", as.numeric(df1$col1))
df1$col1
#[1] "01" "01" "02" "01" "03" "03" "04" "04"
Run Code Online (Sandbox Code Playgroud)
如果是factor列,则先转换为character,然后再转到numeric
df1$col1 <- sprintf("%02d", as.numeric(as.character(df1$col1)))
Run Code Online (Sandbox Code Playgroud)
如果包含字母
df1$col1 <- c(1, '01', 2, '01', 3, 'A', 4, '04')
i1 <- grepl("^[0-9]$", df1$col1)
df1$col1[i1] <- paste0("0", df1$col1[i1])
df1$col1
#[1] "01" "01" "02" "01" "03" "A" "04" "04"
Run Code Online (Sandbox Code Playgroud)
df1 <- data.frame(col1 = c(1, '01', 2, '01', 3, '03', 4, '04'), stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4651 次 |
| 最近记录: |