Добавление строк к существующему фрейму данных в R - PullRequest
0 голосов
/ 26 мая 2020

Я извлекаю данные twitter с помощью пакета twitteR и сохраняю их в фрейме данных x.

Сначала я создал фрейм данных.

x <- data.frame(
  name = character(),
  screen_name = character(),
  id = integer(),
  description = character(),
  statuses_count = integer(),
  followersCount = integer(),
  favoritesCount = integer(),
  friendsCount = integer(),
  url = character(),
  created = integer(),
  verified = integer(),
  profile_image_url = character(),
  stringsAsFactors=FALSE
)

Затем создал функцию для возврата данных a specifici c user

adduserdata <- function(username = ""){
  user <- getUser(username)
  userdata = c(name = user$name,
  screen_name = user$screenName,
  id = user$id,
  description = user$description,
  statuses_count = user$statusesCount,
  followersCount = user$followersCount,
  favoritesCount = user$favoritesCount,
  friendsCount = user$friendsCount,
  url = user$url,
  created = user$created,
  verified = user$verified,
  profile_image_url = user$profileImageUrl)
  return(userdata)
}

Теперь я хочу получить данные каждого пользователя в списке ns и добавить их в фрейм данных x

ns <- c("realDonaldTrump","BarackObama")

for (n in ns) {
  user <- adduserdata(n)
  x <- bind(x, user)
}

Но я получаю сообщение об ошибке с указанием «недопустимого уровня фактора». Не знаю почему.

1 Ответ

0 голосов
/ 26 мая 2020

Вернуть фрейм данных из функции addUser.

adduserdata <- function(username = ""){

   user <- getUser(username)
   userdata = data.frame(name = user$name,
                         screen_name = user$screenName,
                         id = user$id,
                         description = user$description,
                         statuses_count = user$statusesCount,
                         followersCount = user$followersCount,
                         favoritesCount = user$favoritesCount,
                         friendsCount = user$friendsCount,
                         url = user$url,
                         created = user$created,
                         verified = user$verified,
                         profile_image_url = user$profileImageUrl)
   return(userdata)
}

и попробуйте:

result <- do.call(rbind, lapply(ns, adduserdata))

или

result <- purrr::map_df(ns, adduserdata)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...