Как выбрать те же строки из списка фреймов данных? - PullRequest
1 голос
/ 11 марта 2020

У меня есть список, состоящий из двух фреймов данных с одинаковыми размерами. Я хотел бы выбрать из них одинаковые заданные c строки.

df1 = data.frame(A = 1:5, B = 6:10)
df2 = data.frame(A = 11:15, B = 16:20)

ls = list(df1, df2)

idx = sample(1:5, size = 3)

# code below doesn't work
train = ls[][idx, ]
test = ls[][-idx, ]

Теперь я получаю следующие ошибки:

Ошибка в ls [] [idx,]: неверно количество измерений

Ошибка в ls [] [- idx,]: неверное количество измерений

1 Ответ

2 голосов
/ 11 марта 2020

Поскольку это list, мы можем использовать от lapply до l oop над списком. Укажите , в конце, если мы не хотим анонимную функцию или по умолчанию, она будет восприниматься как индекс столбца

lapply(ls, `[`, idx,)
lapply(ls, `[`, -idx,)

С лямбда / анонимной функцией

lapply(ls, function(x) x[idx, ])
lapply(ls, function(x) x[-idx,])

ls - это имя функции, поэтому лучше не использовать имена функций для именования объектов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...