[程式] R 的 apply 系列的速度
[軟體程式類別]:
R
[程式問題]:
資料處理
[軟體熟悉度]:
中(3個月到1年)
[問題敘述]:
下面這支程式
是要拿 45101 個字串對 130000 個字串做 query
我先前已經知道 R 的迴圈很慢
所以改用 apply 和 sapply
但以下的程式把兩種串起來後 又變的超慢
(要跑 1 個月 = =a)
請問變慢的原因就是因為把 apply 和 sapply 串起來嗎?
還是因為我大量的進行 unlist 才拖慢?
[程式範例]:
com_Symbol 是字串矩陣 ( 45101*1 )
NC_list 是 list , [[1]] ~ [[63555]] , 內部是 1~5 個字串 , 總數約 13 萬
################################################
query_B <- function(input)
{
x <- sum( unlist(input) %in% tmp )
return(x)
}
query_A <- function(tmp)
{ tmp <<- tmp
index <- sapply(NC_list,query_B,simplify=T)
index2 <- which(index)
return(index2)
}
treasure <- apply( com_Symbol , 1 , query_A)
-----------------------------------------------------------------------------
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.239.247
※ 編輯: gsuper 來自: 140.113.239.247 (06/16 20:07)
※ 編輯: gsuper 來自: 140.113.239.247 (06/16 20:08)
推
06/16 20:52, , 1F
06/16 20:52, 1F
→
06/16 21:16, , 2F
06/16 21:16, 2F
→
06/16 21:19, , 3F
06/16 21:19, 3F
我把 unlist() 和 sapply() 去掉以後
大約要跑 25 分
只在免強能接受的範圍
看來還是去研究一下 system.call 好了
請問各位大大 , 有沒有還不錯的 R call php 教學?
※ 編輯: gsuper 來自: 140.113.253.149 (06/16 21:43)
→
06/17 01:16, , 4F
06/17 01:16, 4F
→
06/17 01:16, , 5F
06/17 01:16, 5F
→
06/17 01:17, , 6F
06/17 01:17, 6F
→
06/17 01:18, , 7F
06/17 01:18, 7F
→
06/17 01:20, , 8F
06/17 01:20, 8F
→
06/17 01:21, , 9F
06/17 01:21, 9F
→
06/17 01:27, , 10F
06/17 01:27, 10F
→
06/17 01:57, , 11F
06/17 01:57, 11F
→
06/17 15:34, , 12F
06/17 15:34, 12F
→
06/17 19:10, , 13F
06/17 19:10, 13F
請問 grep 有辦法找 exactly match 的字串嗎?
?grep 裡面好像沒有寫
0rz
※ 編輯: gsuper 來自: 140.113.239.247 (06/17 19:48)
→
06/18 00:32, , 14F
06/18 00:32, 14F