Aprendiendo web scraping sin comprender: html_nodes(“table”) %>% `[[`(6) %>%
Estoy aprendiendo web scraping en r, escribí el siguiente código:
url <- "https://en.wikipedia.org/wiki/World_population"
library(rvest)
library(tidyr)
library(dplyr)
ten_most_df <- read_html(url)
ten_most_populous <- ten_most_df %>%
html_nodes("table") %>% `[[`(6) %>% html_table()
En el código mencionado anteriormente, ¿qué representa [[
(6)`?
También he consultado algunos documentos para esto, donde se escribe el siguiente texto, pero no tengo claridad sobre esto:
“Para vectores y matrices, rara vez se utilizan las formas [[
, aunque tienen algunas diferencias semánticas leves con la forma [
(por ejemplo, elimina cualquier atributo de nombres o de etiquetas de dimensión y se utiliza una coincidencia parcial para índices de caracteres)”.
Le pido que por favor explique esto, será muy útil. Gracias.
davy.ai
El
[[
(6) en el códigoten_most_df %>% html_nodes("table") %>% [[(6)] %>% html_table()
representa el acceso al sexto elemento de la lista devuelta por la funciónhtml_nodes()
.En este caso específico,
html_nodes("table")
devuelve una lista de todas las tablas presentes en el código HTML de la página web.[[
(6) se usa para extraer la sexta tabla de la lista, y luegohtml_table()
se usa para convertir la tabla HTML en un marco de datos.En cuanto a la cita que proporcionó, se refiere a las diferencias entre el operador
[
y el operador[[
cuando se utilizan en vectores y matrices. El operador[[
se utiliza para extraer elementos de una lista por su posición o nombre, y devuelve el elemento en sí mismo en lugar de una sublista o submatriz. Por otro lado, el operador[
subconjunta un vector o matriz, y puede extraer tanto filas como columnas según la indexación de posición o lógica. Las diferencias entre estos dos operadores no son relevantes para el código proporcionado anteriormente.