[英]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.