将此for循环转换为apply函数R
我有如下数据向量:将此for循环转换为apply函数R,r,for-loop,mapply,R,For Loop,Mapply,我有如下数据向量: data <- c(1, 3, 4, 7) 数据我们可以使用combn mat[lower.tri(mat, diag=FALSE)] <- combn(data, 2, FUN= function(x) x[2]-x[1]) t(mat) # [,1] [,2] [,3] [,4] #[1,] NA 2 3 6 #[2,] NA NA 1 4 #[3,]
data <- c(1, 3, 4, 7)
数据我们可以使用combn
mat[lower.tri(mat, diag=FALSE)] <- combn(data, 2,
FUN= function(x) x[2]-x[1])
t(mat)
# [,1] [,2] [,3] [,4]
#[1,] NA 2 3 6
#[2,] NA NA 1 4
#[3,] NA NA NA 3
#[4,] NA NA NA NA
mat[lower.tri(mat,diag=FALSE)]我们可以使用combn
mat[lower.tri(mat, diag=FALSE)] <- combn(data, 2,
FUN= function(x) x[2]-x[1])
t(mat)
# [,1] [,2] [,3] [,4]
#[1,] NA 2 3 6
#[2,] NA NA 1 4
#[3,] NA NA NA 3
#[4,] NA NA NA NA
mat[lower.tri(mat,diag=FALSE)]使用outer
:
t(outer(data,data,"-"))*
NA^lower.tri(matrix(0,length(data),length(data)),diag=TRUE)
# [,1] [,2] [,3] [,4]
#[1,] NA 2 3 6
#[2,] NA NA 1 4
#[3,] NA NA NA 3
#[4,] NA NA NA NA
使用外部
:
t(outer(data,data,"-"))*
NA^lower.tri(matrix(0,length(data),length(data)),diag=TRUE)
# [,1] [,2] [,3] [,4]
#[1,] NA 2 3 6
#[2,] NA NA 1 4
#[3,] NA NA NA 3
#[4,] NA NA NA NA
@尼古拉谢谢你的评论。看起来现在已经修好了。@nicola谢谢你的评论。看起来现在已经修好了。