【发布时间】:2018-11-04 12:16:44
【问题描述】:
我创建了以下数据框
df<-data.frame("A"<-c(1:20), "B"<-c(21:40),"C"<-c(11:30))
names(df)<-c("A", "B", "C")
nameslist<-c("A", "B")
我正在尝试获得两列组合的平均值和加权平均值
我试过了
mean(df[,names(df)[names(df)%in%nameslist]])
我收到以下错误。
Warning message:
In mean.default(df[, names(df)[names(df) %in% nameslist]]) :
argument is not numeric or logical: returning NA
我也尝试过如下计算加权平均值
weighted.mean(df[,names(df)[names(df)%in%nameslist]])
410
在这种情况下,我得到的输出为 410。我无法发现我错在哪里。我请求有人在这里指导我
【问题讨论】:
-
从
df中提取列并通过名称向量计算矩阵的平均值:mean(t(df[, nameslist])) -
df <- data.frame(A=c(1:20), B=c(21:40), C=(11:30)); sapply(df[, c("A", "B")], mean)
标签: r dataframe mean weighted-average