2013-03-26 76 views
2

我試圖編寫一個函數來解析和合並一些數據。但是R引發了一個意外的符號錯誤異常。我嘗試過不同的方法來解決這個問題,但仍然無法正常工作。請幫忙。R中的意外符號請參閱代碼

見代碼

$aggall = function(df,grp){numcols = sapply(df,class) %in% 
c('integer', 'numeric') result = aggregate(df[,numcols],df[grp],mean) 
counts = as.data.frame(table(df[grp])) names(counts)[1] = 
grp merge(counts, result, sort=FALSE)} 

錯誤:在「aggall =函數意外符號(去,GRP)在%C {數numCols = sapply(去,類)%( '整數', '數字')的結果「

回答

6

您在一條物理線路中擁有您的全部功能。
因此,當R試圖解析它時,它無法知道一行和下一行何時開始。

要解決此問題,請使用單獨的行或在它們之間添加分號。


或者,你可以有formatR包爲你做吧! (很棒的包裝):

install.packages("formatR") 
library(formatR) 
tidy.source("mySource.R", reindent.space=5) 


aggall = function(df, grp) { 
    numcols = sapply(df, class) %in% c("integer", "numeric") 
    result = aggregate(df[, numcols], df[grp], mean) 
    counts = as.data.frame(table(df[grp])) 
    names(counts)[1] = grp 
    merge(counts, result, sort = FALSE) 
} 
+1

這太浪費空間了。 – 2013-03-26 20:41:16

+1

@TylerRinker所以一團亂七八糟的代碼是件好事?最後我檢查了一下,這樣做是否會引起代碼審查神(以及高級開發人員)的憤怒,並使他們傷害你。用perl。 – Amelia 2013-03-26 20:47:23

+1

@Hiroto,我認爲Tyler可能一直是滔滔不絕的,但我不知道。 – 2013-03-26 20:50:14