在多个Excel工作表和多个文件上运行子集功能

时间:2015-11-24 21:51:52

标签: r excel loops for-loop

我继承了一堆excel文件,每个文件包含多个工作表。 每张表看起来像这样:

str(mydata)
'data.frame':   29 obs. of  23 variables:
 $ Gyffin    : Factor w/ 11 levels "% of total activity added",..: 9 NA 11 4        7 5 6 8 NA NA ...
 $ X2.5.hours: Factor w/ 19 levels "-0.413614051315461",..: 13 8 NA 14 12 11 10 9 NA NA ...
 $ X24.hours : num  5887 NA NA 6310 6291 ...
 $ X48.hours : num  5837 NA NA 6370 6201 ...
 $ X72.hours : Factor w/ 19 levels "-0.112994944133188",..: 10 NA 19 13 12 11 9 8 NA NA ...
 $ NA.       : Factor w/ 15 levels "0","0.314915755033141",..: NA NA 15 10 11 12 13 14 NA NA ...
 $ NA..1     : logi  NA NA NA NA NA NA ...
 $ NA..2     : Factor w/ 19 levels "0","100","1271.6",..: 15 6 NA 7 12 5 3 4 NA NA ...
 $ NA..3     : num  NA NA NA 2947 3241 ...
 $ NA..4     : num  NA NA NA 2817 3605 ...
 $ NA..5     : Factor w/ 18 levels "0","100","1520.4",..: NA NA 18 8 10 5 4 3 NA NA ...
 $ NA..6     : Factor w/ 16 levels "0","1.88229983116934",..: NA NA 16 13 11 8 7 6 NA NA ...
 $ NA..7     : logi  NA NA NA NA NA NA ...
 $ NA..8     : Factor w/ 19 levels "0","10.3482969177356",..: 13 5 NA 7 6 11 15 14 NA NA ...
 $ NA..9     : num  NA NA NA 3963 2736 ...
 $ NA..10    : num  NA NA NA 3504 2762 ...
 $ NA..11    : Factor w/ 18 levels "0","100","2805.56666666667",..: NA NA 18 4 3 8 10 7 NA NA ...
 $ NA..12    : Factor w/ 12 levels "0","0.290827113462025",..: NA NA 12 7 10 8 6 11 NA NA ...
 $ NA..13    : Factor w/ 19 levels "0","100","14C Glucose-6-phosphate",..: 12 3 NA 7 11 9 10 8 NA NA ...
 $ NA..14    : num  NA NA NA 4300 5045 ...
 $ NA..15    : num  NA NA NA 4367 5090 ...
 $ NA..16    : Factor w/ 18 levels "0","1.23360797663463",..: NA NA 18 8 10 6 9 7 NA NA ...
 $ NA..17    : Factor w/ 15 levels "0","0.132468292842382",..: NA NA 15 9 8 7 14 6 NA NA ...

我想运行以下子集代码:

mydata <- read.xlsx("All sites July_Aug 2015.xlsx", sheetName = "Gyffin")
uptake <- mydata[23:28,]
uptake_1 <- uptake[c(1,5,6,11,12,17,18,22,23)]
library(plyr)
uptake_2 <- rename(uptake_1,c("Gyffin" = "Time", "X72.hours" = "Mean_1", "NA." = "SEM_1", "NA..5" = "Mean_2", "NA..6" = "SEM_2", "NA..11" = "Mean_3", "NA..12" = "SEM_3", "NA..16" = "Mean_4", "NA..17" = "SEM_4"))

uptake_2

然后导出到csv:

write.csv(uptake_2, "Gyffin_Summer_Uptake.csv")

所以我在编写循环的帮助之后,所以我可以在每个文件中的目录上运行上面的代码。我设法创建了for循环来生成多个.csv文件中的图形,但我完全不知道这个。

1 个答案:

答案 0 :(得分:0)

将函数循环包装。创建一个包含所有文件名的向量和一个带有输出文件名的向量:

{{1}}