R Lappy,c()和list()之间的差异
c()和list()之间有什么区别? 我正在学习一些网络垃圾,遇到了一个意想不到的错误。 我写了一个小脚本,从ESPN网站的几个页面上搜集棒球数据: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/
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"