作者PTTOuO (五股毕书尽)
看板R_Language
标题[问题] 怎麽做出矩阵中对角线的数平方
时间Thu Sep 28 11:48:23 2017
[问题类型]:
程式谘询(我想用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
求大大帮忙 谢谢
-------------------------------------
我修改一下程式码 可以让对角线平方了
但是其他数字变0了 求解QQ
http://i.imgur.com/PHDYHw3.jpg
我想要呈现下图那样子
http://i.imgur.com/LZ8DRPQ.jpg
用apply看起来变好奇怪
http://i.imgur.com/C68xg1j.jpg
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 106.1.234.184
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1506570506.A.8C6.html
1F:推 seimwiwa: apply(DF,1,k)09/28 11:58
2F:→ clansoda: 可是你为什麽是用apply而不是sapply or lapply呢09/28 12:43
3F:→ clansoda: 理论上你的matrices应该是以一串list所组成的吧09/28 12:43
※ 编辑: PTTOuO (106.1.234.184), 09/28/2017 13:08:49
4F:→ clansoda: Try this diag(DT) <- diag(DT) ^ 2 09/28 13:15
5F:→ PTTOuO: 用lapply有变比较正常了 不过还是怪怪der 而且会跑出25 矩 09/28 13:16
6F:→ PTTOuO: 阵 09/28 13:16
http://i.imgur.com/Iez069k.jpg
※ 编辑: PTTOuO (106.1.234.184), 09/28/2017 13:17:02
7F:→ clansoda: 看不到你的DT是什麽结构 09/28 13:19
http://i.imgur.com/8xyIwfz.jpg
DF长这样唷
※ 编辑: PTTOuO (106.1.234.184), 09/28/2017 13:25:02
8F:→ PTTOuO: 如果使用 大大的diag(DF) <- diag(DF) ^ 2 的确可以得到 09/28 13:27
9F:→ PTTOuO: 想要的结果欸 不过run太多次就越来越大XD 09/28 13:27
http://i.imgur.com/K6IyUTK.jpg
※ 编辑: PTTOuO (106.1.234.184), 09/28/2017 13:29:29
10F:→ clansoda: 甚麽叫做run越多次越大?? 09/28 13:59
11F:→ clansoda: 那就跑一次就好不是吗 09/28 13:59
好 谢谢
※ 编辑: PTTOuO (140.113.136.217), 09/28/2017 15:10:53