【发布时间】:2018-10-26 07:01:26
【问题描述】:
我有以下测试数据:
structure(list(testcode = structure(1:3, .Label = c("1", "20",
"300"), class = "factor"), testname = structure(c(2L, 3L, 1L), .Label = c("Bed",
"Book", "Car"), class = "factor")), .Names = c("testcode", "testname"
), row.names = c(NA, -3L), class = "data.frame")
我有一个函数可以识别一个特定的列名,然后在该列中的变量中添加一个前导零作为一个字符。 (所有列都是字符)。由于“代码”列中的列变量是可变长度的,我认为使用 paste0 作为paste0("0",column_name) 是最简单的。
函数如下:
library(dplyr)
fix_codes <- function(df) {
code_column <- grep("code$", colnames(df), value = TRUE)
df <- df %>%
mutate_at(.vars = code_column, .funs = funs(paste0("0",code_column)))
return(df)
}
但是,paste0 似乎不明白我想将 code_column 指定的列粘贴在一起,而不是像现在这样粘贴“code_column”本身。如何让 paste0 正确识别?
我想得到什么:
testcode testname
01 Book
020 Car
0300 Bed
【问题讨论】:
标签: r