Сначала мы можем удалить элементы списка, которые имеют 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)])