У меня есть следующие тестовые данные:
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, а не сам кодовый_колон, как сейчас. Как сделать так, чтобы paste0 распознал это правильно?
Что я хочу закончить:
testcode testname
01 Book
020 Car
0300 Bed