Я написал небольшую функцию, которая помогает переименовывать столбцы, просматривая каждую переменную и вставляя вокруг нее различные знаки препинания, чтобы текст отправлялся на консоль. Затем его можно скопировать в мой скрипт и переименовать переменные по мере необходимости. Это функция:
library(tidyverse)
tidy_rename <- function (df) {
df_name <- deparse(substitute(df))
names(df) <- tolower(names(df))
cat(paste(df_name, " <- ", paste(df_name, "%>%\n\t rename(")))
for (i in names(df)) {
cat(paste("\t\t", paste(paste("=", paste(paste('"', i), '"'))), ","), sep="\n")
}
writeLines(")"
)
}
Если я использую это в наборе данных:
test_df <- data.frame("VarIable 1" = c(1), "sizrd" = c(1), "dat 1" = c(1),
"x-cord" = c(1), "y-crf" = c(1), "aGe" = c(1), check.names=F)
tidy_rename(test_df)
, что дает следующее, которое можно скопировать и вставить в скрипт:
test_df <- test_df %>%
rename( = " variable 1 " ,
= " sizrd " ,
= " dat 1 " ,
= " x-cord " ,
= " y-crf " ,
= " age " ,
)
Я хотел бы автоматически скопировать этот вывод в буфер обмена внутри функции. Я не уверен, как использовать writeClipboard
вокруг forloop
. Это не работает:
tidy_rename <- function (df) {
df_name <- deparse(substitute(df))
names(df) <- tolower(names(df))
writeClipboard(
cat(paste(df_name, " <- ", paste(df_name, "%>%\n\t rename(")))
for (i in names(df)) {
cat(paste("\t\t", paste(paste("=", paste(paste('"', i), '"'))), ","), sep="\n")
}
writeLines(")"
)
)
}
Есть предложения, пожалуйста?