Удалить строки для нескольких информационных фреймов с именем, соответствующим шаблону - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь удалить первые 9 строк нескольких фреймов данных, которые имеют одинаковую структуру, но разные имена (сохраняя схожую структуру имен). В моем примере есть 4 кадра с соответственно именами Mydataframe_A, Mydataframe_B, Mydataframe_C, Mydataframe_D .

В настоящее время работает со следующим кодом:

`Mydataframe_A`<- `Mydataframe_A`[-c(1:9),]
`Mydataframe_B`<- `Mydataframe_B`[-c(1:9),]
`Mydataframe_C`<- `Mydataframe_C`[-c(1:9),]
`Mydataframe_D`<- `Mydataframe_D`[-c(1:9),]

Но я хотел бы написать это только с одной строкой и не указывать каждый раз каждое имя кадра данных.

Я думаю, что это может работать с использованием имени шаблона и списков, потому что, например, это то, что я делаю для привязки различных фреймов данных:

All_mydataframes <- rbindlist(mget(ls(pattern = "^Mydataframe_")))

Есть идеи, как это сделать?

Спасибо за тонну!

1 Ответ

1 голос
/ 13 мая 2019

Поскольку mget превращает это в список, вы можете использовать apply семейные функции:

rbindlist(lapply(mget(ls(pattern = "^Mydataframe_")), function(x) x[-c(1:9), ]))

Это берет list из mget и удаляет первые 9 строк, затем rbind это из списка до data.table.Единственная проблема в том, что вы не можете различить, к чему data.frame относились исходные данные.

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