R цикл для создания нескольких объектов из одинакового количества существующих объектов - PullRequest
0 голосов
/ 15 марта 2019

Я пытался найти ответ на этот вопрос, но у меня возникли проблемы, потому что я не уверен, что даже ищу нужную вещь. По сути, я хотел бы в R создать цикл для создания нескольких объектов, каждый из которых отличается от объекта. Например, скажем, у меня есть 50 существующих объектов (матрица, фрейм данных, график и т. Д.), И все они названы одинаково (table1, table2 ... table50). Теперь я хотел бы создать 50 новых объектов, скажем, graph1 ... graph50. У меня проблемы с циклом, потому что я не знаю, как работать с именами, являющимися строками. Я пробовал функцию присваивания, но она недостаточно динамична в аргументе присваивания. Я бы в основном хотел что-то вроде этого:

for (i in list(table names)){ graph "i" <- as.network(table "i") }

Я также хотел бы, чтобы это удерживало объекты, назначенные как некоторая функция от себя, например, граф "i" <- некоторая функция (граф "i") и т. Д. * </p>

Кроме того, если есть более эффективный способ, я всегда открыт для него. Это кажется легкой задачей, но я не могу понять это. Прямо сейчас я буквально просто объединяю утверждения в Excel и вставляю их в R, так что это не займет много времени, но это боль. Спасибо.

1 Ответ

0 голосов
/ 15 марта 2019

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

in_list <- list(table1 = iris, 
                table2 = EuStockMarkets)
out_list <- list()

for(i in 1:length(in_list)){
  for(j in colnames(in_list[[i]])){
    out_list[[ gsub("table", "graph", names(in_list)[i]) ]][[j]] <- summary(in_list[[i]][,j])
  }
}

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...