аргумент принуждения не является атомным вектором (повторяется бесконечно) - PullRequest
0 голосов
/ 16 июня 2019

Вопрос новичка здесь. Я пытаюсь запустить некоторый код, который будет извлекать имена пользователей и даты из списка собранных веб-страниц. Раньше это прекрасно работало, но теперь, когда я запускаю код, я получаю сообщение об ошибке «принудительный аргумент - не атомарный вектор», которое повторяется бесконечно.

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

# COLLECT THE DATES
for (i in urls3) {
  addurl <- i
  discussion <- read_html(i, timeout = 1000000000)
  usernames <- discussion %>% 
  html_nodes(".lia-component-message-view-widget-author-username a") %>% 
  html_text()
  all.usernames <- append(all.usernames, usernames)
  datetime <- discussion %>% 
  html_nodes(".local-friendly-date")
  datetime <- str_extract(datetime, "[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2} [A-Z]{2}")
  datetime <- parse_date_time(datetime, "%Y-%m-%d %H:%M:%p", tz = "US/Eastern")
  datetime <- as.character(datetime)
  date.posted <- datetime[1]
  date.replied <- datetime[2]
  date.difference <- difftime(datetime[2],datetime[1], units=c("mins"))

  new.table <- rbind(new.table,c(addurl, date.posted, date.replied, date.difference))
}

Ожидаемыми результатами будет таблица с URL, датой публикации, датой ответа и разницей в дате.

Фактические результаты: «аргумент не является атомным вектором; коэрциаргумент не является атомным вектором; коэрциаргумент не является атомным вектором; коэрциаргумент не является атомным вектором; ...»

1 Ответ

0 голосов
/ 17 июня 2019

Вам нужны эти пакеты, чтобы ваш код работал:

library(textreadr)
library(dplyr)
library(rvest)
library(stringr)
library(lubridate)

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

append, c, rbind

У вас есть два пакета с функцией read_html будьте осторожны.Вы получите ясность, чтобы привести более синтетический пример.Я надеюсь, что это поможет вам.

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