Как добавить новую строку в таблицу HTML

Я собираю данные для исторических результатов собачьих бегов для проекта Uni. Как я могу добавить столбец в таблицу с элементами из другой таблицы? В частности, таблица перед ней состоит из столбцов 3 и 4, поэтому добавьте эту информацию, чтобы создать 13-й и 14-й столбцы в таблице ниже, и заполните каждую строку этой информацией. [Строка из другой таблицы[1]

Вот код, который у меня есть.

library(xml2) 
library(rvest) 
web<- read_html('https://www.thegreyhoundrecorder.com.au/results/bendigo/61001')
tables<- html_nodes(web, 'table') 
tab1<- html_table(tables, fill = TRUE)

person M Bill    schedule 15.04.2020    source источник
comment
Вы хотите добавить столбец только к последнему элементу tab1, то есть tab1[[36]] из tab1[[35]]?   -  person Ronak Shah    schedule 15.04.2020
comment
Мне нужно, чтобы он перебирал все таблицы данных. например, от элементов 1 до конца. Данные представлены парами, поэтому tab1[[1]] содержит информацию для tab1[[2]] и так далее до конца таблиц. @user:3962914   -  person M Bill    schedule 15.04.2020
comment
Я не вижу этого для tab1[[1]] до tab[[12]]. Все они представляют собой кадры данных с одной строкой и двумя столбцами. Что вы хотите сделать для них?   -  person Ronak Shah    schedule 16.04.2020
comment
Да, я только что заметил, что в начале у них 12 столов, и я не уверен, откуда они взялись. Есть ли способ избежать/исключить те одну строку и 2 столбца [1,2], которые вы упомянули, из основных других таблиц? @user:3962914   -  person M Bill    schedule 16.04.2020


Ответы (1)


Мы можем сначала удалить элементы списка, которые имеют 1 строку и 2 столбца.

Мы делаем это с помощью Filter.

remain_tab <- Filter(function(x) !(nrow(x) == 1 & ncol(x) == 2), tab1)
#Probably it is simpler to just remove 1st 12 elements if you know 
#they are the problem and don't want to include in the final dataset.
#remain_tab <- tab1[-c(1:12)]

а затем с помощью Map меняем альтернативные данные.

remain_tab[c(FALSE, TRUE)] <- Map(function(x, y) 
                       {y[paste0('X', c(13, 14))] <- x[c(3, 4)];y}, 
                       remain_tab[c(TRUE, FALSE)], remain_tab[c(FALSE, TRUE)])
person Ronak Shah    schedule 15.04.2020
comment
Большое спасибо за помощь. Просто небольшой вопрос: если бы я хотел создать 15-й столбец, но добавить данные из другой части веб-сайта, использовал бы я также функцию вставки в таблицы? - person M Bill; 18.04.2020
comment
` ‹h1 class=pageTitle›Результаты гонки Варрагул ‹/h1›` - person M Bill; 18.04.2020
comment
Да, вы можете заменить функцию в Map на {y[paste0('X', c(13, 14, 15))] <- as.list(c(x[c(3, 4)], new_text));y}. Замените new_text фактическим содержанием веб-сайта, который вы хотите заменить. - person Ronak Shah; 18.04.2020
comment
Спасибо, это работает. Есть ли способ получить все таблицы в csv? я пытаюсь писать в csv, но безуспешно. @user:3962914 - person M Bill; 20.04.2020