-2
我有幾個數據框命名爲kpi1,kpi2,kpi3,...我想創建一個數據框,其中包含每個這些數據框的某些行(包含某些值)。我有代碼從每個代碼中提取我想要的內容,但是我想編寫一個循環來在每次迭代中選擇每個數據幀,執行提取並轉到下一個文件。所以在第一次迭代中,我可以用kpi1來做東西,用kpi2來做第二次迭代,等等。for循環讀取不同編號的相同名稱
預先感謝您
我有幾個數據框命名爲kpi1,kpi2,kpi3,...我想創建一個數據框,其中包含每個這些數據框的某些行(包含某些值)。我有代碼從每個代碼中提取我想要的內容,但是我想編寫一個循環來在每次迭代中選擇每個數據幀,執行提取並轉到下一個文件。所以在第一次迭代中,我可以用kpi1來做東西,用kpi2來做第二次迭代,等等。for循環讀取不同編號的相同名稱
預先感謝您
您可以使用mget
到它們收集到一個列表,然後使用lapply
或sapply
來處理每一個。您可以在循環中使用get
。使用sprintf
或paste0
創建名稱列表。
out1 <- lapply(mget(sprintf('kpi%d', 1:25)), function(df) df[1:3, ])
out2 <- do.call(rbind, out1)
一般來說,最好是保持你將在全球環境中遍歷像這樣的一個列表,而不是讓每個人在自己的數據幀的多個數據幀。
非常感謝你的回覆。我嘗試使用lapply,正如你所建議的那樣,但是我想使用的函數本身在每次迭代中都會發生變化,即我想要子集kpi1,將它添加到out1,子集kpi2,添加它,直到結束。你能指導我完成這個嗎? –