[问题] 怎么做出矩阵中对角线的数平方

楼主: PTTOuO (五股毕书尽)   2017-09-28 11:48:23
[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
假设矩阵为[1,3] 我想要得出 [1,3]
2,4 2,16
[程式范例]:
DF<-matrix(c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25),nrow=5)
k <- function(g){
j<-diag(g)^2
return(j)
}
apply(DF,1,k(DF))
我自己写一个function , k(DF)可以顺利取出对角线的数字,并平方
但是放到apply却不能用了,出现下列讯息
Error in match.fun(FUN) :
'k(DF)' is not a function, character or symbol
求大大帮忙 谢谢
作者: seimwiwa (pezcadido)   2017-09-28 11:58:00
apply(DF,1,k)
作者: clansoda (小笨)   2017-09-28 12:43:00
可是你为什么是用apply而不是sapply or lapply呢理论上你的matrices应该是以一串list所组成的吧Try this diag(DT) <- diag(DT) ^ 2
楼主: PTTOuO (五股毕书尽)   2017-09-28 13:16:00
用lapply有变比较正常了 不过还是怪怪der 而且会跑出25 矩阵
作者: clansoda (小笨)   2017-09-28 13:19:00
看不到你的DT是什么结构
楼主: PTTOuO (五股毕书尽)   2017-09-28 13:27:00
如果使用 大大的diag(DF) <- diag(DF) ^ 2 的确可以得到想要的结果欸 不过run太多次就越来越大XD
作者: clansoda (小笨)   2017-09-28 13:59:00
什么叫做run越多次越大??那就跑一次就好不是吗

Links booklink

Contact Us: admin [ a t ] ucptt.com