簡體   English   中英

R:如何使用外部自定義函數

[英]R : How to use self-defined function with outer

我是R.的新手。我有這個簡單的函數,它接受2個參數並返回更大的參數。

> z
function (x,y) 
{
ifelse (x>y, out<- x, out<- y)
return(out)
}

我用z(1,3),z(6,2)等組合測試了函數,都給出了正確的答案。 但是當我使用外部函數時,我得到了錯誤的結果。

> outer(x,y, FUN="z")
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    2    3    4    5
[2,]    1    2    3    4    5
[3,]    1    2    3    4    5
[4,]    1    2    3    4    5
[5,]    1    2    3    4    5`

知道哪里出錯了?

非常感謝。

我想你正在尋找Vectorize

outer(x,y, FUN=Vectorize(z))
#      [,1] [,2] [,3] [,4]
#[1,]    2    3    4    5
#[2,]    2    3    4    5
#[3,]    3    3    4    5
#[4,]    4    4    4    5

我們也可以使用pmax得到相同的結果

outer(x,y, FUN=pmax)
#     [,1] [,2] [,3] [,4]
#[1,]    2    3    4    5
#[2,]    2    3    4    5
#[3,]    3    3    4    5
#[4,]    4    4    4    5

占據矩陣的相應元素將是

outer(x,y, FUN=paste)
#    [,1]  [,2]  [,3]  [,4] 
#[1,] "1 2" "1 3" "1 4" "1 5"
#[2,] "2 2" "2 3" "2 4" "2 5"
#[3,] "3 2" "3 3" "3 4" "3 5"
#[4,] "4 2" "4 3" "4 4" "4 5"

數據

x <- 1:4
y <- 2:5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM