Как я могу получить несколько выходов от одной операции? - PullRequest
0 голосов
/ 16 марта 2019

Это коды, которые были написаны для анализа внутри и между взаимодействиями разных видов.

в этом коде я безуспешно пытался получить отдельные результаты каждого анализа.

  lapply(data.list, function(x) {            
    grp <- factor(x$species)                 
    window <- ripras(x$utmX, x$utmY)         
    pp.grp <- ppp(x$utmX, x$utmY, window=window, marks=grp) 
    split.grp <- split(pp.grp)               
    L <- (alltypes(pp.grp, "L"))         
    LE <- alltypes(pp.grp, Lcross, nsim = 100, envelope = TRUE)  
    return("L", "LE")
})
plot(L[1])

Итак, мой вопрос, как я могу получить несколько выходов за одну операцию?

Заранее большое спасибо!

1 Ответ

0 голосов
/ 16 марта 2019

Наиболее распространенный способ обработки нескольких выходов из функции в R это результаты в списке и вернуть это. Надеюсь, это может вдохновить вас:

f <- function(x){
  L <- x
  LE <- matrix(x, 2, 2)
  rslt <- list(L = L, LE = LE)
  return(rslt)
}
y <- f(7)

Теперь у - список с двумя элементами: L и LE

y
#> $L
#> [1] 7
#> 
#> $LE
#>      [,1] [,2]
#> [1,]    7    7
#> [2,]    7    7

Используйте $ для получения именованного элемента (в данном случае L - так же, как y[[1]]):

y$L
#> [1] 7

Создано в 2019-03-16 пакетом Представление (v0.2.1)

...