mapply
似乎是你在找什麼。它允許您提供一個函數和多個輸入 - 然後它將使用每個輸入的第一個元素作爲函數,然後使用輸入的第二個元素等等。
symbols_v <- c('UPRO','TLT','SPXU','TBT','DRN','URE','SOXL')
out <- combn(symbols_v, 2)
# What you would probably want
mapply(f, out[1,], out[2,])
# Example output
mapply(paste, out[1,], out[2,])
# get rid of names
mapply(paste, out[1,], out[2,], USE.NAMES = FALSE)
# add other parameters to function of interest
mapply(paste, out[1,], out[2,], USE.NAMES = FALSE, MoreArgs = list(sep = "."))
從這些例子中的輸出:
> mapply(paste, out[1,], out[2,])
UPRO UPRO UPRO UPRO UPRO UPRO
"UPRO TLT" "UPRO SPXU" "UPRO TBT" "UPRO DRN" "UPRO URE" "UPRO SOXL"
TLT TLT TLT TLT TLT SPXU
"TLT SPXU" "TLT TBT" "TLT DRN" "TLT URE" "TLT SOXL" "SPXU TBT"
SPXU SPXU SPXU TBT TBT TBT
"SPXU DRN" "SPXU URE" "SPXU SOXL" "TBT DRN" "TBT URE" "TBT SOXL"
DRN DRN URE
"DRN URE" "DRN SOXL" "URE SOXL"
> # get rid of names
> mapply(paste, out[1,], out[2,], USE.NAMES = FALSE)
[1] "UPRO TLT" "UPRO SPXU" "UPRO TBT" "UPRO DRN" "UPRO URE" "UPRO SOXL"
[7] "TLT SPXU" "TLT TBT" "TLT DRN" "TLT URE" "TLT SOXL" "SPXU TBT"
[13] "SPXU DRN" "SPXU URE" "SPXU SOXL" "TBT DRN" "TBT URE" "TBT SOXL"
[19] "DRN URE" "DRN SOXL" "URE SOXL"
> # add other parameters to function of interest
> mapply(paste, out[1,], out[2,], USE.NAMES = FALSE, MoreArgs = list(sep = "."))
[1] "UPRO.TLT" "UPRO.SPXU" "UPRO.TBT" "UPRO.DRN" "UPRO.URE" "UPRO.SOXL"
[7] "TLT.SPXU" "TLT.TBT" "TLT.DRN" "TLT.URE" "TLT.SOXL" "SPXU.TBT"
[13] "SPXU.DRN" "SPXU.URE" "SPXU.SOXL" "TBT.DRN" "TBT.URE" "TBT.SOXL"
[19] "DRN.URE" "DRN.SOXL" "URE.SOXL"
我們可以侮辱你的智力而不提供答案嗎? :P –
@JoshuaUlrich - 我希望在首次發佈時看到您的評論,不知何故,我錯過了它。它讓我發笑。乾杯。 –