在R中聚合时找不到对象
我试图在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
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))的输出更新帖子
这只是一个警告。是的,但正如警告所说,参数不是数字或逻辑的
我假设这有助于避免警告它只是一个警告。是的,但正如警告所说,参数不是数字或逻辑的
我假设这有助于避免警告