Сумма одного столбца (с тем же именем) во всех фреймах данных в списке

Как я могу суммировать один конкретный столбец во всех фреймах данных в списке и помещать их в новый фрейм данных? Небольшой пример:

A <- data.frame(matrix( nrow = 2, ncol = 2))
B <- data.frame(matrix( nrow = 2, ncol = 2))

A[,] <- 3
B[,] <- 4

l <- list(A,B)

Допустим, я хочу суммировать все столбцы «X1» в моем списке и поместить в один фрейм данных (вектор, поскольку должна быть только одна строка). Затем этот фрейм данных должен иметь значение 6 (3+3) в первой строке и 8 (4+4) во второй.

В реальных данных у меня есть 18 фреймов данных в списке, и столбцы для суммирования в каждом фрейме данных имеют разную длину.

Может быть, мне следует использовать функцию sapply или lapply?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
57
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете использовать colSums, т.е.

do.call(rbind, lapply(l, function(i)colSums(i['X1'])))
#     X1
#[1,]  6
#[2,]  8

Вот один из вариантов с sapply, где мы Extract столбец «X1» превращаем в matrix, а затем делаем colSums

colSums(sapply(l, `[[`, 'X1'))
#[1] 6 8

Или с map от purrr

library(purrr)
library(dplyr)
map_dbl(l, ~ .x %>% 
               pull(X1) %>% 
               sum)
#[1] 6 8

Если он нужен как data.frame

map_dfr(l, ~ .x %>% 
               summarise(X1 = sum(X1)))
#   X1
#1  6
#2  8

Другие вопросы по теме

Обновить список во вложенном словаре
Как сохранить список в виде файла в R, чтобы прочитать его в Python?
Проверить наличие любого значения в списке в предложении
Соедините 2 списка коллекций вместе из 2 источников данных, найдите совпадения и просмотрите результаты
For loop, разделить строку, сохранить части строки в новый список, IndexError: индекс списка вне диапазона - работает для одной части строки, а не для другой
Разбиение строки на несколько частей с разделением символов в Haskell
Есть ли способ написать с меньшим «вложением»?
Как создать список столбцов, которые содержат указанные строки в своих строках?
Pythonic способ принятия одного числа или списка и использования его в качестве списка (эквивалентно numpy.atleast_1d() )
Один и тот же код дает разные выходные данные при использовании в основной функции и в определяемой пользователем функции, даже если ввод одинаков