我正在尝试在R中使用聚合。我找到了一个示例代码:
attach(mtcars)
agg=aggregate(mtcars, by=list(cyl,vs),FUN=mean, na.rm=TRUE)
detach(mtcars)
这很好用。但是,当我尝试使用我的数据时:
library(stats)
FileName="Raw.csv"
Raw=read.csv(FileName,header = TRUE)
Acc1=aggregate(Raw,by=list(Experiment,SsNum),FUN=mean, na.rm=TRUE)
我收到以下错误消息:
aggregate.data.frame出错(Raw,by = list(Experiment,SsNum),FUN = mean,对象'Experiment'未找到
我也试图跑:
Acc2=aggregate(Raw,by=list(Raw$Experiment,Raw$SsNum),FUN=mean, na.rm=TRUE)
我收到以下错误:
有50个或更多警告(使用警告()查看前50个)
警告是: 1:在mean.default(X [[i]],...)中: 参数不是数字或逻辑:返回NA
我的主要问题是Acc1与在线示例的不同之处(工作正常)。
非常感谢
Ariel
答案 0 :(得分:2)
你可以只计算mean
的{{1}},这样你至少可以获取除字符变量之外的数据子集。那是你numeric variable
最有可能与ACC1
不同,因为在mtcars
中只有数字值,因此你不会在第一行收到警告。
所以在这一行:
mtcars
您收到错误,因为在RAW中似乎有一列不是Acc2=aggregate(Raw,by=list(Raw$Experiment,Raw$SsNum),FUN=mean, na.rm=TRUE)
假设你有:
numeric
然后聚合如下:
set.seed(4)
Experiment <- sample(seq(1:3), 5, replace=TRUE)
SsNum <- sample(1:10, 5, replace=TRUE)
value <- rnorm(5)
df <- data.frame(Experiment, SsNum, value)