如何将R中矢量构成的矢量转换为单个矢量?

时间:2018-03-28 02:38:54

标签: r loops for-loop vector

我正在做一个棒球分析程序,它从多个网页上获取互联网上的数据。为了简化我的工作,我使用循环逐页进行并将我需要的所有数据收集到一个向量中。像这样:

player_html <- c()
for(i in 1:28){
  player_html[[i]] <- html_nodes(...)
}
players <- c()
for(i in 1:28){
  players[[i]] <- html_text(...)

这个例子展示了它如何通过28个不同的网页,并提取每页50个玩家的名字。一旦代码完成,编译“players”变量在全局环境中列为“28的列表”,但28个点中的每一个都填充不超过50个名称。我希望它是一个1400而不是28的列表,所以我可以将它放入一个数据框,并阻止R返回一个错误,指出“参数意味着不同的行数。”

1 个答案:

答案 0 :(得分:0)

您可以直接在for循环中创建所有结果的数据框,并在每次迭代时将其他结果附加到输出数据框。像这样:

results <- data.frame(matrix(nrow = 0, ncol=2))
colnames(results) <- c("playername", "page")
player_html <- c()
currnames <- c()

for(i in 1:28){
  html_text() <-  html_nodes(...)
  currnames <- html_text()
  results <- rbind(results, data.frame(playername=currnames, page=i))
}