Программирование на R (новичок): использование цикла for вернул мне только последний результат из списка - PullRequest
0 голосов
/ 06 марта 2019

Я использовал цикл for, чтобы просмотреть 50 результатов, они есть в списке vid_id. Теперь я хочу получить статистику от этих идентификаторов (я использую библиотеку клубней).

for(i in vid_id){
   stas <- get_stats(video_id = i)
}
View(stas)

Проблема, с которой я сталкиваюсь при запуске этого кода, заключается в том, что я получаю только результаты последнего идентификатора (50). Я хочу создать список, который возвращает мне все статистические данные из каждой строки (содержащие идентификатор) в vid_id. Было бы здорово, если бы кто-нибудь мог помочь мне найти решение :)

Ответы [ 2 ]

1 голос
/ 06 марта 2019

Это потому, что вы присваиваете значение stas каждый раз, когда цикл оборачивается и, таким образом, перезаписывает предыдущее значение.Решение состоит в том, чтобы переместить присваивание переменной за пределы цикла и добавить значение следующим образом:

all_stas <- list()
for(i in vid_id){
   stas <- get_stats(video_id = i)
   all_stas <- append(all_stas,stas)
}
View(all_stas)

Обратите внимание, здесь я определил переменную all_stas как список, потому что я не знаю, что такое функция "get_stats"возвращается и list () должен иметь возможность обрабатывать все, что вы хотите добавить.Если вы возвращаете data.frame, вы можете использовать функцию rbind () вместо

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

Понял!Это возвращает фрейм данных.

all_stas <- list()
for(i in vid_id){
  stas <- get_stats(video_id = i)
  all_stas <- rbind(all_stas,stas)
}
View(all_stas)
df <- data.frame(all_stas)

Спасибо всем за помощь:)

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