2012-10-19 50 views
1

我有很多變數需要喂到aggregate,顯然我懶得明確地輸入所有的數據,特別是偶爾會改變一次,但我想排除的數據大多是相同的。我試着寫在R中與aggregate()一起使用時,如何從公式中的dot中排除一些變量,即除了某些之外的所有變量?

hru.mean <- 
    aggregate(.-LULC~GIS, hru.annual, "mean") 

,但顯然這是不完全正確,因爲它說

Error in aggregate.data.frame(mf[1L], mf[-1L], FUN = FUN, ...) : 
    no rows to aggregate 
In addition: Warning message: 
In Ops.factor(., LULC) : - not meaningful for factors 

我剛纔看到this,所以它看起來像它的工作原理爲lmaggregate不起作用。有沒有其他的選擇?

回答

3

像這樣的事情相比,你的數據集,而不是限制列:

aggregate(.~cyl, mtcars[, !colnames(mtcars) %in% c("hp")], mean) 
+0

我意識到我也可以提供像'subset(hru.annual,select = -c(LULC,HRU))'這樣的東西。也許這是一個單獨的問題,但儘管如此......我有一種直覺,認爲「子集」通常比較整齊。雖然我不知道內部。 – mlt

3

爲什麼不只是傳遞一個子集作爲數據

aggregate(. ~ Species, data = iris, mean) 

aggregate(. ~ Species, iris[,-which(names(iris) == 'Sepal.Length')], mean) 
+2

' ''''''''通常是代碼味道。 – hadley

+0

Subsetting一定會工作。我不確定我是否在使用公式做錯了事。我猜想可能會有更好的支持()。 – mlt

相關問題