我有一个数据框架,其中包含1980年1月到1990年12月的气候数据观测结果。数据集如下所示:
我的目标是得到一个数据集,其中前4列与我的原始数据集相同,其余为所有年份的月平均值。
由于每个月的平均值计算为以下各项的平均值(all of)每12列,我大概使用列索引除以12的模式,而公共模式定义了用于计算的列,例如,对于一月份的值,tave 01,新 Dataframe 中的值由来自索引/12的模式= 5的原始 Dataframe 的所有列计算。
有谁知道怎么做吗?我写了下面的代码来构建原始 Dataframe 和我想要的 Dataframe 的框架:
df_original <- data.frame(matrix(,nrow = 155, ncol = 484))
colnames(df_original)[1:10] <- c('ID','latitude','longitude','elevation','198001','198002','198003','198004','198005','198006') #original dataset, the variable names are months from 1980-01 to 1990-12.
col_ind <- seq(5,length(colnames(tave)));col_ind #sequence of column indecies
df_new <- data.frame(matrix(,nrow = nrow(df_original), ncol = 16)) #empty new dataframe
df_new[,1:4] <- df_original[,1:4]
colnames(df_new) <- c('ID','latitude','longitude','elevation','tave01','tave02','tave03','tave04','tave05','tave06','tave07','tave08','tave09','tave10','tave11','tave12')
1条答案
按热度按时间qf9go6mv1#
这里有一种方法,我将标题名称转换为年和月列,然后取每个月的位置平均值,并再次重新调整宽度。
结果