R - Как разбить фрейм данных на список фреймов данных с конкретными комбинациями заголовков - PullRequest
0 голосов
/ 13 сентября 2018

Я очень плохо знаком с R и могу использовать некоторую помощь.

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

Например, с учетом следующих данных:

df <- data.frame ("Time" = c("Mon","TUE", "WED"), VarA = c(2,5,6), VarB = c(24,46,14))

Я хотел бы получить два фрейма данных, содержащихся в списке. Первый будет столбцами «Время» и «VarA», а второй будет столбцами «Время» и «VarB».

В идеале функция, которая создает этот список, будет масштабируемой для сотен пар переменных времени. Конечная цель - получить список фреймов данных, чтобы я мог использовать lapply для выполнения различных вычислений с данными.

Я думаю Я могу использовать split.data.frame, чтобы превратить свой исходный фрейм данных в список определенных подмножеств исходного фрейма данных, но у меня возникают проблемы с правильными аргументами.

1 Ответ

0 голосов
/ 03 октября 2018

Вы хотите, чтобы каждый столбец представлял собой отдельный фрейм данных?

lapply(2:ncol(df), function (j) df[c(1, j)])

Решение с split здесь не работает.Если вы хотите разделить каждый столбец, алгоритм, который выполняет split, на самом деле является накладным.Узнайте больше о split из Какой алгоритм лежит в основе функции `split` ядра R *

Если вам сложно понять код, сделайте это в два шага.

# define a function
f <- function (j) df[c(1, j)]

## try the function to see that it does
f(2)
f(3)

# use a lapply loop
result <- lapply(2:ncol(df), f)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...