R适用于拆分数据框中超过1列的平均值
R sapply and mean for more than 1 column in split dataframe
我有一个关于在 R 中应用的问题:
我有一个数据框 Test_ALL,我(目前)将其拆分为一个名为 activity 的列。数据框有大约 20 列带有超长名称(例如 fBodyBodyGyroJerkMag-std()),我不想明确写下来。从这个数据框中,我想得到每一列的平均值。我试过了,它适用于 1 个命名列。
aa<-split(Test_ALL,Test_ALL$activity)
y<-sapply(aa,function(x) colMeans(x [c("fBodyBodyGyroJerkMag-std()")]))
但是当我试图获得超过 1 列的平均值时,它不起作用。
aa<-split(Test_ALL,Test_ALL$activity)
y<-sapply(aa,function(x) colMeans(x [c("fBodyBodyGyroJerkMag-std()","fBodyAccMag-std()")]))
这个我也试过了,也没成功
namesERG<-names(Test_ALL)
aa<-split(Test_ALL,Test_ALL$activity)
y<-sapply(aa,function(x) colMeans(x[c(namesERG)]))
我做错了什么?
谢谢你!
没有可重现的例子很难完全理解你的问题。无论如何,我认为问题的一部分与您有一些非数字列的事实有关。我认为这样的事情可能是一个解决方案
library(dplyr)
aa <- split(Test_ALL, Test_ALL$activity)
y <- sapply(aa, function(x) colMeans(select_if(x, is.numeric)))
我有一个关于在 R 中应用的问题:
我有一个数据框 Test_ALL,我(目前)将其拆分为一个名为 activity 的列。数据框有大约 20 列带有超长名称(例如 fBodyBodyGyroJerkMag-std()),我不想明确写下来。从这个数据框中,我想得到每一列的平均值。我试过了,它适用于 1 个命名列。
aa<-split(Test_ALL,Test_ALL$activity)
y<-sapply(aa,function(x) colMeans(x [c("fBodyBodyGyroJerkMag-std()")]))
但是当我试图获得超过 1 列的平均值时,它不起作用。
aa<-split(Test_ALL,Test_ALL$activity)
y<-sapply(aa,function(x) colMeans(x [c("fBodyBodyGyroJerkMag-std()","fBodyAccMag-std()")]))
这个我也试过了,也没成功
namesERG<-names(Test_ALL)
aa<-split(Test_ALL,Test_ALL$activity)
y<-sapply(aa,function(x) colMeans(x[c(namesERG)]))
我做错了什么? 谢谢你!
没有可重现的例子很难完全理解你的问题。无论如何,我认为问题的一部分与您有一些非数字列的事实有关。我认为这样的事情可能是一个解决方案
library(dplyr)
aa <- split(Test_ALL, Test_ALL$activity)
y <- sapply(aa, function(x) colMeans(select_if(x, is.numeric)))