Циклический просмотр списка и объединение строк в R (синтаксис) - PullRequest
0 голосов
/ 04 июня 2018

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

Я имею в виду:

while (i <= 14) {
    "newDF" + i <- oldDf %>%
         filter(str_detect(ColumnName, "TEXT" + i)

}

Новые кадры данных должны выглядеть следующим образом:

newDF1, newDF2 ...newDF14

Они должны быть созданы на основе объединенной строки (text + i):

text1, text2..text14

MyПервая задача - создать новый фрейм данных, основанный на конкатенации текста и i .Я пытался использовать команду str_c и команду str_glue, но получаю следующее сообщение об ошибке.

Error in str_c("newDF", i)) <- oldDF: 
  target of assignment expands to non-language object


Error in str_glue("newDF{i}") <- oldDF: 
  target of assignment expands to non-language object

1 Ответ

0 голосов
/ 21 февраля 2019

Основная проблема с вашим кодом выше состоит в том, что слева от вашего оператора присваивания не может быть никаких операций.

for (i in 1:14){
    assign(str_glue("newDF{i}"), oldDF %>%
         filter(str_detect(ColumnName, str_glue("TEXT{i}"))))
}

Так что технически это сработало бы, хотя я чувствую, что лучшеспособ сделать это либо с помощью вложенных списков или с помощью распространения и сбора.Я бы сказал больше, но у меня недостаточно контекста для решения проблемы.

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