2014-06-17 43 views
-2

我有幾個數據框命名爲kpi1,kpi2,kpi3,...我想創建一個數據框,其中包含每個這些數據框的某些行(包含某些值)。我有代碼從每個代碼中提取我想要的內容,但是我想編寫一個循環來在每次迭代中選擇每個數據幀,執行提取並轉到下一個文件。所以在第一次迭代中,我可以用kpi1來做東西,用kpi2來做第二次迭代,等等。for循環讀取不同編號的相同名稱

預先感謝您

回答

1

您可以使用mget到它們收集到一個列表,然後使用lapplysapply來處理每一個。您可以在循環中使用get。使用sprintfpaste0創建名稱列表。

out1 <- lapply(mget(sprintf('kpi%d', 1:25)), function(df) df[1:3, ]) 
out2 <- do.call(rbind, out1) 

一般來說,最好是保持你將在全球環境中遍歷像這樣的一個列表,而不是讓每個人在自己的數據幀的多個數據幀。

+0

非常感謝你的回覆。我嘗試使用lapply,正如你所建議的那樣,但是我想使用的函數本身在每次迭代中都會發生變化,即我想要子集kpi1,將它添加到out1,子集kpi2,添加它,直到結束。你能指導我完成這個嗎? –