Мне нужно написать файл внутри функции lapply. Я очищаю большой список веб-страниц, и я хотел бы сохранить результат каждые 100 или около того. Я использую следующий кодR: Сохранение внутри lapply
from = seq(1,100, 10)
aa <- length(url)
func1 = function(url){
out <- tryCatch(
{
aa <<- aa -1
print(aa)
doc = htmlParse(url)
address= as.data.frame(xpathSApply(doc,'//div[@class="panel-body"]', xmlValue, encoding="UTF-8"))
page = cbind(address,url)
if (aa %in% from){
pg = suppressMessages(melt(cc))
write.csv(pg,paste("bcc_",aa,".csv"))
}
}
cc = lapply(url, func1)
Однако, когда я делаю это я получаю ошибку говоря объект «сс» не найден. Я знаю, что это можно сделать, используя цикл for. Но есть ли способ выполнить эту задачу, используя функцию apply.
Это простой случай, когда требуется запятая? 'lapply (url, func1)' не 'lapply (url func1)'? – NJBurgo
Нет проблемы, поскольку они пытаются вызвать объект, который еще не существует в их среде. Если бы они использовали цикл for (который пользователи специально просили избежать), они могли бы инициализировать пустой список с помощью 'list()', добавлять выходы в пустой список внутри такого цикла и затем сохранять вывод, когда cc достигает правильного длина. Использование цикла for было бы более легким решением. – TJGorrie
@ NJBurgo- не это не запятая – rrodrigorn0