Fonksiyon birden fazla değer döndürme
hala R mantığı girmeye çalışan... "" yol bir fonksiyon birden fazla değer döndürme sonuçları paketten? en iyi
Bu görünüşte yapamam:
R> functionReturningTwoValues <- function() { return(c(1, 2)) }
R> functionReturningTwoValues()
[1] 1 2
R> a, b <- functionReturningTwoValues()
Error: unexpected ',' in "a,"
R> c(a, b) <- functionReturningTwoValues()
Error in c(a, b) <- functionReturningTwoValues() : object 'a' not found
gerçekten aşağıdakileri yapmanız gerekir?
R> r <- functionReturningTwoValues()
R> a <- r[1]; b <- r[2]
ya R programcı daha çok şöyle bir şey yazardı:
R> functionReturningTwoValues <- function() {return(list(first=1, second=2))}
R> r <- functionReturningTwoValues()
R> r$first
[1] 1
R> r$second
[1] 2
--- Shane'in soruları cevaplamak için düzenlenmiş ---
Gerçekten sonucu isim değer parça vermek istemiyorum. Bir diğer ikinci bileşeni (min max. ilk bileşeni ve bir toplama işlevi başvuruyorum eğer her iki bileşen için aynı işlevi olsaydı yarma onlara ihtiyacımız var) olmaz.
CEVAP
(1) liste[...]<-Yaklaşık 10 yıl önce bu r-help ilan ettim. Özel bir operatör gerektirmez ama sol taraftaki yazılmış olması gerekir list[...] kullanarak bu gibi:
# run the source command below first
list[a, b] <- functionReturningTwoValues()
Not:Son zamanlarda list gsubfn package geliştirme sürümü eklendi ve üzerinden kaynaklı olabilir:
library(devtools)
source_url("https://raw.githubusercontent.com/ggrothendieck/gsubfn/master/R/list.R")
Eğer sadece birinci veya ikinci bileşeni gerekiyorsa, bu çok çalışmak:
list[a] <- functionReturningTwoValues()
list[a, ] <- functionReturningTwoValues()
list[, b] <- functionReturningTwoValues()
R-yardıma daha fazla örnek için iplik gösterdi bakın.
(2)Sadece birden fazla birleştirmek amacıyla sonradan değerleri ve dönüş değerleri olarak adlandırılır, o zaman basit bir alternatif with kullanmak için :
myfun <- function() list(a = 1, b = 2)
list[a, b] <- myfun()
a b
# same
with(myfun(), a b)
(3) takınBaşka bir alternatif takın
attach(myfun())
a b
Ve takın . ile EKLEDİ:

HashMap aynı anahtar altında birden fa...
JavaScript birden fazla değer döndürme...
En iyi ihtimalle başına birden fazla d...
Virgülle ayrılmış tek bir değer haline...
Nasıl C bir işlevin birden fazla değer...