Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
求中间值,不包括R中的对角线_R_Median_Diagonal - Fatal编程技术网

求中间值,不包括R中的对角线

求中间值,不包括R中的对角线,r,median,diagonal,R,Median,Diagonal,我在R编程方面有问题。从矩阵中,我如何找到排除对角线的每一行的中值 Ex:matrix 4x4 0 1 2 3 1 0 1 2 2 1 0 1 3 2 1 0 我想找出每行的中位数,不包括对角线(在这个例子中,对角线=0) 我试过: diag(A) <- NA mean(A, na.rm = TRUE) # doesn't work apply(A, 1, median) # it works but the calculation including the diagonal

我在R编程方面有问题。从矩阵中,我如何找到排除对角线的每一行的中值

Ex:matrix 4x4

0 1 2 3 

1 0 1 2

2 1 0 1

3 2 1 0
我想找出每行的中位数,不包括对角线(在这个例子中,对角线=0)

我试过:

diag(A) <- NA
mean(A, na.rm = TRUE) # doesn't work

apply(A, 1, median) # it works but the calculation including the diagonal. 
diag(A)试试这个:

A <- matrix(c(0,1,2,3,1,0,1,2,2,1,0,1,3,2,1,0),nrow=4)
sapply(1:4, function(x) median(A[x,-x]))

[1] 2 1 1 2

A我不知道你为什么要使用
mean()
;为什么不试试
median()
?下面是:

A <- read.table(text="0 1 2 3 
1 0 1 2
2 1 0 1
3 2 1 0", header=F)
A <- as.matrix(A)
diag(A) <- NA

A
     V1 V2 V3 V4
[1,] NA  1  2  3
[2,]  1 NA  1  2
[3,]  2  1 NA  1
[4,]  3  2  1 NA

myFun <- function(x){ median(x, na.rm=T)}
apply(A, 1, FUN=myFun)
[1] 2 1 1 2
A