2016-04-28 3 views
-4

У меня более 200 data.frames в моей глобальной среде. Я хотел бы удалить первую строку из каждого data.frame, но я не уверен, как это сделать.R: Удалить строку из всех data.frames в глобальной среде

Любая помощь будет оценена, пожалуйста, дайте мне знать, если необходима дополнительная информация.

+0

Как ветер с таким беспорядком? Вероятно, лучше сохранить эти data.frames в списке, а не загрязнять вашу глобальную среду. С ними было бы намного легче работать. – MrFlick

+0

См. [Как составить список фреймов данных] (http://stackoverflow.com/a/24376207/903061) для получения рекомендаций по MrFlick. – Gregor

ответ

2

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

df <- lapply(ls(), function(x) get(x)[-1,])

Update: хорошая идея, чтобы проверить, если объекты находятся в рамках фактических данных и работать только с теми. Сначала мы создаем логический вектор, перечисляющий фреймы данных, затем объединяем их в список и удаляем первую строку каждого.

dfs = sapply(ls(), is.data.frame) 
lapply(mget(names(dfs)[dfs]), "[", -1, , drop = FALSE) 

благодаря комментариям отысканий моей ошибки и предоставлению более эффективных решениям

+2

, вероятно, вы должны добавить проверку того, что объект является фреймворком данных http://stackoverflow.com/questions/35387419/how-to-rbind-all-the-data-frames-in-your-working-environment-in-r/35387595 # 35387595 – user20650

Смежные вопросы