r - 在 R 中创建一个迭代循环以读取文件夹中的所有 Excel 文件,执行相同的功能,并导出为新文件
问题描述
我目前的问题是我写了以下内容:
list.of.packages <- c("xlsx","dplyr","tidyverse")
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
if(length(new.packages)) install.packages(new.packages)
lapply(list.of.packages, require, character.only=T)
setwd("C:/Users/Google Drive/Global MIS/Global profiles/profiles_as_data")
AEC_data <- read.xlsx("G-AEC-DATA.xlsx", sheetIndex = 1, as.data.frame = T, check.names = F)
rownames(AEC_data) = make.names(AEC_data$AEC, unique = T)
AEC_data <- tibble::rownames_to_column(AEC_data,"Variable")
AEC_data <- select(AEC_data, -2)
AEC_data_reshaped <- reshape(AEC_data,
direction = "long",
varying = list(names(AEC_data)[2:17]),
v.names = "Value",
idvar = "AEC",
timevar = "Year",
times = 2004:2019)
AEC_data_reshaped <- select(AEC_data_reshaped, -4)
AEC_data_reshaped$Company <- "AEC"
write.xlsx(AEC_data_reshaped, "C:/Users//Google Drive/Global MIS/Global profiles/profiles_as_data_long/G-AEC-DATA-LONG.xlsx", row.names = F, showNA = F)
这只是读入 G-AEC-DATA.xlsx,将其处理成长格式并进行一些清理。然后它将其输出到具有新名称的新文件夹中。
我的问题是我必须为 30 个 xlsx 文件执行此操作。例如,我基本上需要找到并替换“AEC”并再次迭代“ABC”。
我猜我需要设置一个列表,例如:
fileNames <- c("AEC.xlsx","ABC.xlsx")
例如,然后遍历每个文件名。所有原始文件的格式完全相同,我只需要切换出 ISO3 代码并遍历每个文件,
谢谢。
解决方案
也许你可以做这样的事情:
my_xlsx_files <- dir(path=my_path)
for (file in my_xlsx_files){
#do what you want here and save
}
推荐阅读
- rasa-nlu - 如何在 RASA 中使用多意图?
- arrays - 列表初始化仍然为空
- vscode-extensions - 在 Visual Studio Code 扩展测试中模拟用户击键
- python - 使用 sqlite3 python 错误进行数据库搜索
- python - 如何由用户启动进程,而不是在 Python 中继续使用 Selenium
- azure-devops - 检索已发布 Azure DevOps 工件的正确方法
- javascript - 什么事件可以用来检测输入的值已经改变,Angular
- xcode - 更新“未在指定位置找到 SDK”后,Visual Studio 2019 无法连接到 Mac 安装的 Visual Studio for Mac
- objective-c - 重置/重新初始化 NSXPCConnection?
- python - Python:如何使用瓶子从本地主机获取某个 url?