在R中聚合时找不到对象

时间:2016-10-11 12:54:12

标签: r aggregate

我正在尝试在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

1 个答案:

答案 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)