You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中移除列表中列数超过2的表格元素?

解决方案:筛选或精准定位2列表格

一、从已爬取的列表中过滤出2列表格

你已经得到了包含所有表格的列表lineupdata,可以通过检查每个表格的列数,保留仅含2列的元素:

使用base R实现:

filtered_lineupdata <- Filter(function(tbl) ncol(tbl) == 2, lineupdata)

使用purrr包实现(更简洁):

如果已安装purrr包,也可以用keep函数:

library(purrr)
filtered_lineupdata <- keep(lineupdata, ~ncol(.x) == 2)

二、爬取时直接定位目标表格(更高效)

既然你需要的表格带有class="s-table"属性,完全可以在提取表格前就精准定位这类元素,避免爬取不需要的宽格式表格:

修改你的爬取代码如下:

lineup <- remDr$findElement(using= 'class', 'lineup_table_group')
lineup_html <- lineup$getPageSource() %>% unlist()
lineuppage <- read_html(lineup_html)

# 仅选择带有s-table类的表格,再提取数据
target_tables <- lineuppage %>% 
  html_nodes("table.s-table") %>% 
  html_table()

这样target_tables里就只会包含你需要的2列长格式表格,不会混入多列的宽格式表格。

内容的提问来源于stack exchange,提问作者Ellen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 23:25:18