2016-04-28 70 views
-4

我的全局環境中有200多個數據幀。我想從每個data.frame中刪除第一行,但我不知道如何。R:從全局環境中的所有數據幀中刪除一行

任何幫助將不勝感激請讓我知道,如果需要進一步的信息。

+0

你怎麼風與這樣一個爛攤子評論?將這些數據框架保存在列表中而不是像這樣污染你的全球環境可能會更好。用這種方式工作會更容易。 – MrFlick

+0

請參閱[如何創建數據框列表](http://stackoverflow.com/a/24376207/903061),以跟蹤MrFlick的建議。 – Gregor

回答

2

這將列出您環境中的所有數據幀,從每個數據幀中刪除第一行,並將它們組織到數據框列表中。一般來說,更好的做法是將它們放在列表中,這樣您就可以更輕鬆地在它們之間使用它們並訪問它們。

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

更新:好主意,檢查對象實際上的數據幀,只有那些工作。首先我們創建一個邏輯向量列表dataframes,然後將它們組合成一個列表並刪除每個列表的第一行。

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

相關問題