使用R来操作Excel电子表格数据并将输出返回到单独的工作表
所以我有这个名为'Birth.xls'
Excel电子表格。 我在这个单一的电子表格中有10张这种格式:
Sheet1 Number Value 3 0.125 6 0.2 9 0.275 12 0.35 15 0.425 17 0.5 19 0.575 21 0.65 23 0.725 25 0.8 27 0.875 29 0.95 31 1.025 Sheet2 Number Value 3 0.614 6 0.654 9 0.694 12 0.734 15 0.774 17 0.814 19 0.854 21 0.894 23 0.934 25 0.974 27 1.014 29 1.054 31 1.094
我怎样才能在这个电子表格中创build另一个“工作表”,上面有使用R给出的工作表的平均值?…我明白,我可以在Excel中做到这一点,但是由于我有10张或更多,有时可以是相当痛苦的…特别是当我必须做比平均更复杂的东西….所以总而言之,我想要一个类似于下面的输出
Sheet3 Number Average Value 3 0.3695 6 0.427 9 0.4845 12 0.542 15 0.5995 17 0.657 19 0.7145 21 0.772 23 0.8295 25 0.887 27 0.9445 29 1.002 31 1.0595
这是我会做的一个方法。 首先,加载所有的数据,把它们作为一个数据框,计算方法,然后导出到新的表格。
library(XLConnect) #load xls file wb<-loadWorkbook("Birth.xls") #get sheet names of file lp<-getSheets(wb) #load each sheet in seperate list element dat<-lapply(seq_along(lp),function(i) readWorksheet(wb,sheet=lp[i])) #convert all data to one data frame by merging individual data frame dat2<-Reduce(function(...) merge(..., by="Number"), dat) #calculate row means of merged data frames (-1 as first column contains Number) dat2$res<-rowMeans(dat2[,-1]) #create new sheet to export data createSheet(wb, name = "together") #write calculated data to new sheet writeWorksheet(wb,dat2[,c("Number","res")],sheet="together") #save workbook saveWorkbook(wb)