2013-03-21 100 views
-1

我试图运行下面的脚本:错误与“功能”类

m <- matrix(c(1,1,2,1,3,12,14,16,30,21), nrow=5, ncol=2, byrow=FALSE); 

colnames(m) <-c("Group","Score"); 
m<-data.frame(m) 
head(m) 


sum1 <- aggregate(list(total_score=m$Score), by=list(group=m$Group), FUN=sum) 
sum1 

但是,当我运行该脚本,控制台返回以下错误:

Error in as.data.frame.default(x) : 
    cannot coerce class '"function"' into a data.frame 

我的天堂在......之前没有看到这个错误。任何人对于什么是错的想法?

+0

我可以在没有任何错误的情况下运行新的R会话。你有没有加载冲突的对象名称? – 2013-03-21 18:18:10

+1

所以,现在你运行的是你的[上一个](http://stackoverflow.com/questions/15532316/error-unused-arguments-for-function-aggregate)问题完全相同的代码,但错误是不同的?你为什么不编辑原来的那个? – joran 2013-03-21 18:18:59

+0

如果您想查明问题,您应该单独测试每个项目的班级/输出。做'list(total_score = m $ Score)',然后'list(group = m $ Group)',确保你为'aggregate'的每个参数获得了正确的输出。 – 2013-03-21 18:21:48

回答

1

你很可能重写了其中一个内置函数,比如list()或sum()。

有一点需要注意的是,R启动时会自动加载名为“.RData”的工作空间,并且您可能已将先前被覆盖的函数保存在该文件中。

检查您从任何.RData文件开始R的文件夹,并删除它们或重命名它们(它们可能被隐藏!),因此R不会在启动时加载任何内容。