2015-10-17 24 views
2

我的代碼如下:解讀R(無效裝飾的說法)錯誤:由新手

lat <- 24.419 
lon <- 54.502 
days <- 1 
Tmax <- 44.3 
Tmin <- 26.0 
tal <- 0.72 
BCb_guess <- 0.13 
epsilon <- 0.5 
rad_mea <- 254 
sirad::bccal(lat, days, rad_mea, extraT = NULL, Tmax, Tmin, tal) 

當我從sirad包的執行我的功能bccal(),我得到以下錯誤:

Error in prettyNum(.Internal(format(x, trim, digits, nsmall, width, 3L, : 
    invalid 'trim' argument 

我是R完全新手任何幫助解決這個問題將高度讚賞,謝謝

回答

0

我已經調試了這一點。 這裏定義了bccal函數。

https://github.com/cran/sirad/blob/master/R/bccal.R

的問題是,在第16行的到來。

dtempM <- mean(as.numeric(aggregate(Zdtemp, by = format(time(Zdtemp), 
    "%m"), FUN = mean, na.rm = TRUE)), na.rm = T) 

在這裏具體

format(time(Zdtemp), "%m") 

我真的不知道你想達到的目標(沒有一個關於bccal線索,我只能說,它依賴於最高溫度,Tmin和天),因此多數民衆贊成我現在可以做。 可能會爲你響鈴

+0

感謝您的答覆,不幸的是它一直只是一天,因爲我已經開始,使用R,所以我不很清楚它的語法,你覺得還有很長的路要走呢? bccal()函數通過執行非線性最小二乘迴歸估計Bristow-Campbell模型係數'B'。輸出值是BCb(係數「B」)。其手冊中給出的示例之一是 其手冊可在 訪問https://cran.r-project.org/web/packages/sirad/sirad.pdf – Hawkins

+0

要獲得快速R教程 - 請使用此介紹性免費來自Data camp的教程 https://www.datacamp.com/courses/free-introduction-to-r – Bg1850

0

不知道這是否會導致錯誤,但我認爲你的date參數錯誤。你給它一個你想要計算的天數,但bccal(和R中的大多數其他函數)可以從其他參數的長度推斷出來。

date參數應該是您想要計算的實際日期的向量。例如:

# for one day 
lat <- 24.419 
lon <- 54.502 
days <- as.Date('2015-06-22') 
Tmax <- 44.3 
Tmin <- 26.0 
tal <- 0.72 
BCb_guess <- 0.13 
epsilon <- 0.5 
rad_mea <- 254 
sirad::bccal(lat, days, rad_mea, extraT = NULL, Tmax, Tmin, tal) 

# for several days 
lat <- 24.419 
lon <- 54.502 
days <- c(as.Date('2015-06-22'), as.Date('2015-07-16')) 
Tmax <- c(44.3, 43.7) 
Tmin <- c(26.0, 25.1) 
tal <- 0.72 
BCb_guess <- 0.13 
epsilon <- 0.5 
rad_mea <- c(254, 253) 
sirad::bccal(lat, days, rad_mea, extraT = NULL, Tmax, Tmin, tal)