[英]Indexes overlap error when using dplyr to run a function
對於以下示例
n=68
dat <- data.frame(group=rep(LETTERS[1:2], n/2),
x=rnorm(n, 0.1,0.1))
我正在嘗試按組運行 function (來自FitDoubleLogBeck
的greenbrown
):
SNDVI0= dat %>%
group_by(group) %>%
dplyr::summarise(smoothNDVI= FitDoubleLogBeck(x, tout = F, weighting = T,
hessian = F, plot = F, ninit = 10)$predicted)
但我得到了這個錯誤
Error in `dplyr::summarise()`:
! Problem while computing `smoothNDVI = ...$predicted`.
i The error occurred in group 2: group = "B".
Caused by error in `rbind.zoo()`:
! indexes overlap
當我為每個組分別運行 function 時,它工作正常
dat0= subset(dat,group== "A" )
fit <- FitDoubleLogBeck(dat0$x, out = F, weighting = T,
hessian = F, plot = F, ninit = 10)$predicted)
fit$predicted
如何使用 dplyr 通過 grup 運行 function? 原始數據有 6000 多組,每組有 52 個觀測值。
您可以嘗試將動物園 output 制作成這樣的列表:
dat %>%
group_by(group) %>%
dplyr::summarise(smoothNDVI= list(FitDoubleLogBeck(x, tout = F, weighting = T,
hessian = F, plot = F, ninit = 10)$predicted))
# # A tibble: 2 × 2
# group smoothNDVI
# <chr> <list>
# 1 A <zoo [1]>
# 2 B <zoo [1]>
或者,將其變成一個小標題:
dat %>%
group_by(group) %>%
dplyr::summarise(smoothNDVI= as_tibble(FitDoubleLogBeck(x, tout = F, weighting = T,
hessian = F, plot = F, ninit = 10)$predicted))
# # A tibble: 2 × 2
# group smoothNDVI$value
# <chr> <dbl>
# 1 A 0.124
# 2 B 0.125
我注意到 output 每次都不同,我不確定這是多么有意。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.