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...