Мне нужно вызвать переменную внутри цикла и использовать ее в качестве имени моего столбца:
Это пример набора данных:
mtcars.df <- mtcars
Ожидаемый результат:
mtcars.df <- mtcars.df %>% add_column(a1 = sample (1:4, 32, replace = TRUE), b1 = sample (1:4, 32, replace = TRUE), c1 = sample (1:4, 32, replace = TRUE))
Таким образом, a1, b1 и c1 должны быть созданы внутри цикла и переименованы в a1, b1 и c1. Имена более длинные (и разные комбинации) в исходном наборе данных, но это определено в переменной mpg.filename.
Это то, что я пробовал до сих пор: 1-й, очевидно, не дает желаемого результата, он просто показывает, чего я хочу достичь.
mpg.filename <- c("a1.file", "b1.file", "c1.file")
for (i in mpg.filename) {
sample.name <- unlist(strsplit(as.character(i), '.', fixed = TRUE))[1]
mtcars.df$i <- sample (1:4, 32, replace = TRUE)
}
for (i in mpg.filename) {
sample.name <- unlist(strsplit(as.character(i), '.', fixed = TRUE))[1]
mtcars.df$temp.var <- sample (1:4, 32, replace = TRUE)
temp.name <- paste0 (sample.name) %>% rlang::parse_expr()
mtcars.df <- mtcars.df %>% rename (eval (sample.name) = temp.var)
}
for (i in mpg.filename) {
sample.name <- unlist(strsplit(as.character(i), '.', fixed = TRUE))[1]
mtcars.df$temp.var <- sample (1:4, 32, replace = TRUE)
temp.name <- paste0 (sample.name) %>% rlang::parse_expr()
mtcars.df <- mtcars.df %>% rename (syms(sample.name) = temp.var)
}
Я тоже пробовал get
, as.symbol
, parse (text = "sample.name")
, но тоже не сработало.
Спасибо за помощь. Я пытался посмотреть другие ответы на форумах, но они, кажется, не применяются или не работают.
использование eval () в строке для доступа к атрибутам объекта в R
вызов столбцов внутри цикла for в R
Получение строк, распознаваемых как имена переменных в R
Как вычислить выражение с переменными в R?