匹配仅含增量数字差异的列名并计算对应列rowMeans的方法
R数据框列分组求行均值操作方法
现有包含多列的data frame,部分列名除字符串中插入的随机增量数值外完全一致,且列名中可能存在不属于增量体系的数字。需要匹配仅增量数字存在差异的列分组,计算这些分组的rowMeans,之后将原始匹配列从数据集中删除。
示例数据框
A2<-c(1,2,2,3) B3<-c(3,4,3,2) st<-c(1,2,2,3) ba<-c(3,4,3,2) Red1bax<-c(3,4,5,6) Red2bax<-c(2,3,4,NA) Red7bax<-c(3,4,5,6) Red1str<-c(3,4,5,6) Red2str<-c(2,3,4,5) Red9str<-c(3,4,5,6) N34_22str<-c(3,4,2,6) N34_303str<-c(2,4,2,6) DF<-data.frame(A2,B3,st,ba,N34_303str, Red1str,Red2str, Red7bax, Red2bax, Red9str, Red1bax, N34_22str)
本示例中需匹配的列分组为Red?bax、Red?str、N34_?str(?代表增量数字)。
实现代码
# 计算各分组行均值并新增列 DF$Redbax <- rowMeans(DF[,c('Red1bax','Red2bax','Red7bax')], na.rm = TRUE) DF$Redstr <- rowMeans(DF[,c('Red1str','Red2str','Red9str')], na.rm = TRUE) DF$N34 <- rowMeans(DF[,c('N34_22str','N34_303str')], na.rm = TRUE) # 删除原始匹配列 DF <- DF[,-c(5:12)]
内容的提问来源于stack exchange,提问作者Vint
相关产品推荐
相关产品推荐

