R Lappy,c()和list()之间的差异

R Lappy,c()和list()之间的差异,r,rvest,R,Rvest,c()和list()之间有什么区别? 我正在学习一些网络垃圾,遇到了一个意想不到的错误。 我写了一个小脚本,从ESPN网站的几个页面上搜集棒球数据: library(magrittr) library(rvest) Baseball <- read_html("http://www.espn.com/mlb/stats/batting/_/qualified/true") Baseball.2 <- read_html("http://www.espn.com/mlb/stats/

c()和list()之间有什么区别? 我正在学习一些网络垃圾,遇到了一个意想不到的错误。 我写了一个小脚本,从ESPN网站的几个页面上搜集棒球数据:

library(magrittr)
library(rvest)

Baseball <- read_html("http://www.espn.com/mlb/stats/batting/_/qualified/true")
Baseball.2 <- read_html("http://www.espn.com/mlb/stats/batting/_/count/41/qualified/true")
Baseball.3 <- read_html("http://www.espn.com/mlb/stats/batting/_/count/81/qualified/true")
Baseball.4 <- read_html("http://www.espn.com/mlb/stats/batting/_/count/121/qualified/true")
Baseball.list <- c(Baseball, Baseball.2, Baseball.3, Baseball.4)


scrape <- function(html) {
  temp.df <- data.frame(1:length(html %>%
                                   html_nodes(paste0("td:nth-child(2)")) %>%
                                   html_text()))
  for (i in 2:19) {
  temp.df[i - 1] <- 
    html %>%
    html_nodes(paste0("td:nth-child(", i, ")")) %>%
    html_text()
  }
  temp.df
}

但是,如果我完全按照
c()
的文档所述运行
barball.list

所有参数都被强制为一个公共类型,该类型是返回值的类型,除名称外的所有属性都被删除

该列表按照
xml2::read\u html
的意图保存文档类。如果查看,您将看到泛型方法
xml\u find\u all
仅为
xml\u missing
xml\u node
xml\u nodeset

> class(read_html("<html><title>Hi<title></html>"))
[1] "xml_document" "xml_node"    
> a = read_html("<html><title>Hi<title></html>")
> b = read_html("<html><title>Hi<title></html>")
> c = read_html("<html><title>Hi<title></html>")
> lapply(c(a,b,c), class)
$node
[1] "externalptr"

$doc
[1] "externalptr"

$node
[1] "externalptr"

$doc
[1] "externalptr"

$node
[1] "externalptr"

$doc
[1] "externalptr"

> lapply(list(a,b,c), class)
[[1]]
[1] "xml_document" "xml_node"    

[[2]]
[1] "xml_document" "xml_node"    

[[3]]
[1] "xml_document" "xml_node"
类(读html(“Hi”)) [1] xml\u文档“xml\u节点” >a=读取html(“Hi”) >b=读取html(“Hi”) >c=读取html(“Hi”) >Lappy(c(a,b,c),等级) $node [1] “外部PTR” $doc [1] “外部PTR” $node [1] “外部PTR” $doc [1] “外部PTR” $node [1] “外部PTR” $doc [1] “外部PTR” >lapply(列表(a、b、c),等级) [[1]] [1] xml\u文档“xml\u节点” [[2]] [1] xml\u文档“xml\u节点” [[3]] [1] xml\u文档“xml\u节点”
第一个
棒球.list
(使用
c()
)在
lappy
中被强制为
as.list(barball.list)
,因此将其与第二个
棒球.list
进行比较。我看到了输出的差异,但仍然不完全理解输出的含义。我困惑的一部分是,在其他答案中(比如这里:),它们似乎在做类似的事情,但c()工作正常。我缺少一些基本的东西吗?
> class(read_html("<html><title>Hi<title></html>"))
[1] "xml_document" "xml_node"    
> a = read_html("<html><title>Hi<title></html>")
> b = read_html("<html><title>Hi<title></html>")
> c = read_html("<html><title>Hi<title></html>")
> lapply(c(a,b,c), class)
$node
[1] "externalptr"

$doc
[1] "externalptr"

$node
[1] "externalptr"

$doc
[1] "externalptr"

$node
[1] "externalptr"

$doc
[1] "externalptr"

> lapply(list(a,b,c), class)
[[1]]
[1] "xml_document" "xml_node"    

[[2]]
[1] "xml_document" "xml_node"    

[[3]]
[1] "xml_document" "xml_node"