R - lapply创建正确的表格

时间:2018-03-26 17:08:58

标签: r lapply write.table

我以前没有R的经验,但过去几周必须动手学习。  基本上,我要做的是从一系列文件中读取某个变量并将其保存为csv-table。该变量具有过去20年中每年每月的小时值,并且必须针对不同的地理位置进行读取。

因此每年将有12个文件(每个月1个),每个文件中变量的值将为696到744(取决于当月的天数×24小时)。

我所做的是用函数读取存储在目录中的所有12个文件的值,并将它们作为向量添加到lapply-list中:

Myfunction <- function(filename) {
 nc <- nc_open(filename)
 lon <- ncvar_get(nc, "lon")
 lat <- ncvar_get(nc, "lat")
 RW <- ncvar_get(nc, "X")
 HW <- ncvar_get(nc, "Y")
 pt.geo <- c(8.6810 , 50.1143)
 dist <- sqrt( (lon - pt.geo[1])^2 + (lat - pt.geo[2])^2 )
 ind <- which(dist==min(dist, na.rm=TRUE),arr.ind=TRUE)
 sis <- ncvar_get(nc, "SIS", start=c(ind[1],ind[2],1), count=c(1,1,-1))
 vec <- c(sis)
}

filenames <- list.files(path = "C:/Users/Desktop/VD/Solardaten/NC", pattern = "nc", full.names = TRUE)
 output <- lapply(filenames, Myfunction)

这里开始我将“输出”保存为csv表的问题。输出将包含12个不同长度的矢量。

我希望在Excel中将它们设为12列(每月1次),每列应包含与本月值相同的行条目。

无论我尝试使用write.table,我都无法实现这一点(尝试将输出转换为矩阵,也没有成功)。 请帮忙!

这就是我希望每年看表的方式(我可以自己添加的列名):

Final Table based on output

0 个答案:

没有答案