我在名为import_xxx.xlsx的文件夹中有4个文件。
我需要应用以下任务,
1。首先将通用标头名称应用于文件夹中的所有文件。
我尝试了以下代码。
1。读取文件列表
filenames_list <- list.files(pattern= ".xls", full.names=TRUE)
我的问题是如何搜索标题名称,并将更改后的名称应用于所有文件。
我的列名与示例数据如下。
Sr No Invoice Date Invoice No Payer Name IGMNo Container No Size Type Act. gate in Date Container Agent Container Agent Name Importer Name CHA Code CHA Name Activity Description Amount Service Tax Total
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 8-1-2018 12:12:29 AM MII180800001 SAME DEUTZ FAHR INDIA PRIVATE LIMITED 2200750 ECMU9674562 40 GB 7-26-2018 4:50:35 AM CLC007 CMA CGM SAME DEUTZ FAHR INDIA PRIVATE LIMITED CHS020 SEAKING CARGO SERVICES (I) PVT LTD Handling & PNR Movement Charges-FCL 10400 1872 12272
2 8-1-2018 12:12:29 AM MII180800001 SAME DEUTZ FAHR INDIA PRIVATE LIMITED 2200750 ECMU9674562 40 GB 7-26-2018 4:50:35 AM CLC007 CMA CGM SAME DEUTZ FAHR INDIA PRIVATE LIMITED CHS020 SEAKING CARGO SERVICES (I) PVT LTD Value Added Charges 2000 360 2360
我需要执行以下数据转换任务,该任务将小写字符转换为大写字符。即活动描述列。
data.frame(lapply(df $ Activity Description,function(v){ 如果(is.character(v))return(toupper(v)) 否则返回(v) }))
是否需要遍历文件才能编写?以下代码将写入文件,但我需要遍历并写入所有文件的应用更改。
write.xlsx2(filename,"path")
有人可以帮我遍历文件,执行标头转换并在循环中写入文件吗?
谢谢。
答案 0 :(得分:0)
我将按照以下内容进行操作。您将必须使用新的公共标头common_header
定义向量。
(未经测试。)
library(xlsx)
filenames_list <- list.files(pattern= "\\.xls", full.names=TRUE)
target_dir <- "path/to/target/directory/"
lapply(filenames_list, function(fl){
DF <- read.xlsx2(fl)
names(DF) <- common_header
target_fl <- paste0(target_dir, basename(fl))
write.xlsx2(DF, target_fl)
})