Есть ли способ вызова фрейма данных внутри функции с использованием paste0?(Имейте в виду, что переменная является динамической) - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь автоматизировать некоторые процессы для оповещений по электронной почте, поэтому мне приходится вызывать разные кадры данных с разными группами писем и имен.Я не могу вызвать фрейм данных, используя paste0, у меня закончились идеи, любая обратная связь была бы оценена.

Я прошел через много вопросов, но ни один из них не делает то, что яхочу сделать.

В следующем коде i является предыдущим значением для других автоматизированных процессов.

for (u in 1:i) {



for (g in 1:length(Milestone_data$Milestone_Column_Name)) {



  for (a in 1:length(Merged_table1$`Review ID`)) {

    if (!is.na(paste0("Merged_table",u)[,c(Milestone_data$Milestone_Column_Name[g])][a])){
      print(paste0(g, a))

      if (paste0("Merged_table",u)[, Milestone_data$Milestone_Column_Name[g]][a] <= (Sys.Date() + weeks(2)) & paste0("Merged_table",u)[, Milestone_data$Milestone_Column_Name[g]][a] >= (Sys.Date())){
        newrow <- (c(paste0("Merged_table",u)[["EMAIL"]][a], paste0("Merged_table",u)[a,c(1)], paste0("Merged_table",u)[["Review Category"]][a], Milestone_data$Milestone_Column_Name[a], as.Date(paste0("Merged_table",u)[, Milestone_data$Milestone_Column_Name[g]][a],"%Y-%m-%d") ))
        paste0("x",u) <-InsertRow(paste0("x",u), NewRow = newrow)

      }

    } 
  }
}
}

Ошибка в paste0 ("Merged_table", u) [, Milestone_data $ Milestone_Column_Name [g]]: неверное количество измерений.

Это ошибка, которую я получаю. Оптимальным результатом было бы получение трех разных фреймов данных из трех исходных, соответствующихс условиями, которые я установил в формуле.

Любая помощь приветствуется.Спасибо

1 Ответ

2 голосов
/ 03 апреля 2019

вам нужна функция get.Рассмотрим простой пример:

x_1 <- 11

paste0("x_", 1) * 2

Ошибка в paste0 ("x_", 1) * 2: нечисловой аргумент для двоичного оператора

get(paste0("x_", 1)) * 2
[1] 22
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...