在R中聚合时找不到对象

在R中聚合时找不到对象,r,aggregate,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

我试图在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(原始,by=list(实验,SsNum),FUN=mean,找不到对象“实验”时出错

我还尝试运行:
Acc2=aggregate(原始,by=list(原始$experience,原始$SsNum),FUN=mean,na.rm=TRUE)

我得到了以下错误:
有50个或更多警告(使用warnings()查看前50个)

警告如下: 1:平均值。默认值(X[[i]],…): 参数不是数字或逻辑:返回NA

我的主要问题是Acc1与在线示例有何不同(这很好)

多谢各位


Ariel

您可以只计算
数值变量的
平均值
,因此您至少需要获取不包括字符变量的数据子集。这就是您
ACC1
最有可能与
mtcars
不同的地方,因为在
mtcars
中只有数值,因此您不会得到w在第一行学习

因此,在这一行:

Acc2=aggregate(Raw,by=list(Raw$Experiment,Raw$SsNum),FUN=mean, na.rm=TRUE)
您会得到一个错误,因为在RAW中,似乎有一列不是
数值的

假设你有:

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)

您可以只计算
数值变量的
平均值
,因此您至少需要获取不包括字符变量的数据子集。这就是您
ACC1
最有可能与
mtcars
不同的地方,因为在
mtcars
中只有数值,因此您不会在第一行

因此,在这一行:

Acc2=aggregate(Raw,by=list(Raw$Experiment,Raw$SsNum),FUN=mean, na.rm=TRUE)
您会得到一个错误,因为在RAW中,似乎有一列不是
数值的

假设你有:

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)

在第一个参数中,您提供了完整的数据集,您应该为
mean
所需的列子集,以回答您的主要问题:区别在于
attach(..).detach()
。顺便说一句:
attach()
的使用是危险的。为了帮助其他人复制您的问题,我建议使用
dput的输出更新帖子(head(Raw,5))
在第一个参数中,您提供了完整的数据集,您应该为
mean
所需的列进行子集,以回答您的主要问题:区别在于
attach(..)…detach()
。顺便说一句:
attach()的使用
是危险的。为了帮助其他人复制你的问题,我建议用
dput(head(Raw,5))的输出更新帖子
这只是一个警告。是的,但正如警告所说,
参数不是数字或逻辑的
我假设这有助于避免警告它只是一个警告。是的,但正如警告所说,
参数不是数字或逻辑的
我假设这有助于避免警告