我有两个小标题,每个小标题最多有 4 列。每个列名要么对两者通用,要么在其中一个或另一个中缺失。我需要将它们组合成一个有两行的小标题,并NA
在它们丢失的列中。我需要一般地执行此操作,因此它适用于或多或少缺失的列。这是从两个示例网页生成小标题的代码;
library(tidyverse)
library(htmltab)
read_results <- function(filename) {
doc <- read_file(filename)
df <- as_tibble(htmltab(doc=doc, which="//table[@id='results']"))
colnames(df) <- c("pos", "name", "time", "age_cat", "age_grade", "gender", "gender_pos", "note", "total_runs")
tib = t(as_tibble(df) %>% group_by(substr(note,1,12)) %>% summarise(number=n()))
colnames(tib) <- as.character(unlist(tib[1,]))
tib = tib[-1,]
r <- t(tib)
return (r);
}
# saved from http://www.parkrun.org.uk/henleyonthames/results/weeklyresults/?runSeqNumber=2
r2 = read_results("results _ henleyonthames parkrun_2.html")
# saved from http://www.parkrun.org.uk/henleyonthames/results/weeklyresults/?runSeqNumber=4
r4 = read_results("results _ henleyonthames parkrun_4.html")
现在t2
并t4
包含
> r2
First Timer! New PB! PB stays at <NA>
[1,] "58" "11" " 3" " 4"
> r4
First Timer! New PB! PB stays at
[1,] "62" "16" "11"
我想构建t_all
为
First Timer! New PB! PB stays at <NA>
58 11 3 4
62 16 11 0