[問題] 怎麼做出矩陣中對角線的數平方

看板R_Language作者 (五股畢書盡)時間6年前 (2017/09/28 11:48), 6年前編輯推噓1(1010)
留言11則, 3人參與, 6年前最新討論串1/1
[問題類型]: 程式諮詢(我想用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://www.ptt.cc/bbs/R_Language/M.1506570506.A.8C6.html

09/28 11:58, 6年前 , 1F
apply(DF,1,k)
09/28 11:58, 1F

09/28 12:43, 6年前 , 2F
可是你為什麼是用apply而不是sapply or lapply呢
09/28 12:43, 2F

09/28 12:43, 6年前 , 3F
理論上你的matrices應該是以一串list所組成的吧
09/28 12:43, 3F
※ 編輯: PTTOuO (106.1.234.184), 09/28/2017 13:08:49

09/28 13:15, 6年前 , 4F
Try this diag(DT) <- diag(DT) ^ 2
09/28 13:15, 4F

09/28 13:16, 6年前 , 5F
用lapply有變比較正常了 不過還是怪怪der 而且會跑出25 矩
09/28 13:16, 5F

09/28 13:16, 6年前 , 6F
09/28 13:16, 6F
http://i.imgur.com/Iez069k.jpg
※ 編輯: PTTOuO (106.1.234.184), 09/28/2017 13:17:02

09/28 13:19, 6年前 , 7F
看不到你的DT是什麼結構
09/28 13:19, 7F
http://i.imgur.com/8xyIwfz.jpg
DF長這樣唷 ※ 編輯: PTTOuO (106.1.234.184), 09/28/2017 13:25:02

09/28 13:27, 6年前 , 8F
如果使用 大大的diag(DF) <- diag(DF) ^ 2 的確可以得到
09/28 13:27, 8F

09/28 13:27, 6年前 , 9F
想要的結果欸 不過run太多次就越來越大XD
09/28 13:27, 9F
http://i.imgur.com/K6IyUTK.jpg
※ 編輯: PTTOuO (106.1.234.184), 09/28/2017 13:29:29

09/28 13:59, 6年前 , 10F
甚麼叫做run越多次越大??
09/28 13:59, 10F

09/28 13:59, 6年前 , 11F
那就跑一次就好不是嗎
09/28 13:59, 11F
好 謝謝 ※ 編輯: PTTOuO (140.113.136.217), 09/28/2017 15:10:53
文章代碼(AID): #1Pp74AZ6 (R_Language)