R Studio のグローバル環境は、複数のデータ フレームで構成されています。各データ フレーム内のデータを 1 つの Excel ファイル内の各タブに書き込みたいと思います。
この質問を再現可能にするために、グローバル環境で次のデータ フレームを考えてみましょう。
df1 <- data.frame(ID = c("001", "002", "003"), scores = c(5, 7, 6))
df2 <- data.frame(ID = c("001", "002", "003"), scores = c(3, 6, 4))
df3 <- data.frame(ID = c("001", "002", "003"), scores = c(7, 6, 7))
df4 <- data.frame(ID = c("001", "002", "003"), scores = c(4, 3, 7))
目的の出力は 1 つの Excel ファイルで、4 つのタブがあり、最初のタブには「df1」という名前が付けられ、df1 のデータが含まれています。
次のことを試しましたが、すべて機能しません。
lapply(ls(), function(x) write.xlsx(ls(), "Overall_Output.xlsx", sheetName = x, append = TRUE, col.names = TRUE, row.names = FALSE, showNA = FALSE))
lapply(names(ls()), function(x) write.xlsx(ls(), "Overall_Output.xlsx", sheetName = x, append = TRUE, col.names = TRUE, row.names = FALSE, showNA = FALSE))
lapply(names(ls()), function(x) write.xlsx(ls[[x]], "Overall_Output.xlsx", sheetName = x, append = TRUE, col.names = TRUE, row.names = FALSE, showNA = FALSE))
Stackoverflow には、for ループを使用したクエリの解決策があることを知っています。ただし、関数の適用ファミリ (lapply など) を使用して答えを導き出すソリューションはありません。
この問題を解決するには、lapply を使用してください。ありがとう!