嗨我在下面有一个标题列表:
> head(qu3)
fips SCC Pollutant Emissions type year
114288 24510 10100601 PM25-PRI 6.532 POINT 1999
> str(qu3)
'data.frame': 2096 obs. of 6 variables:
$ fips : chr
$ SCC : chr
$ Pollutant: chr
$ Emissions: num
$ type : chr
$ year : int
我尝试使用代码按年汇总并且有效:
qu3.aggreg <- aggregate(emission, by=list(year), sum)
但是,当我尝试使用下面的代码汇总不同列的数据时,由于某些原因,它不起作用并显示下面的错误。我想这可能与int和char有关吗?
Error in aggregate.data.frame(as.data.frame(x), ...) :
object 'type' not found
> qu3.aggreg <- aggregate(emission ~ type, data=qu3, FUN=SUM)
Error in model.frame.default(formula = emission ~ type, data = qu3) :
variable lengths differ (found for 'type')
> qu3.aggreg <- aggregate(emission, by=list(type ), sum)
Error in aggregate.data.frame(as.data.frame(x), ...) :
object 'type' not found
答案 0 :(得分:0)
首先,我同意Rohit Das写的内容。
如果您收到最后一个错误,则第一个代码也不应该有效。
您需要指定要使用的数据,因此它应如下所示:
qu2.aggreg <- aggregate(qu3$emission, by=list(qu3$year), sum)
该行的错误:
qu3.aggreg <- aggregate(emission ~ type, data=qu3, FUN=SUM)
说,长度不同,所以可能是在qu3 $类型列中有NA。 因此,首先尝试:
qu3$type <- factor(qu3$type, exclude=NULL)
这使得type
成为一个因子,其中缺失值(NA)是一个级别。
然后:
qu3.aggreg <- aggregate(emission ~ type, data=qu3, FUN=SUM)
应该工作。
答案 1 :(得分:0)
您还可以检查变量名称,例如排放或排放吗?我在str(qu3)
上找到了排放物