[問題] grepl與迴圈使用
[問題類型]:
效能諮詢(我想讓R 跑更快)
[軟體熟悉度]:
請把以下不需要的部份刪除
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
請簡略描述你所要做的事情,或是這個程式的目的
手上有兩個檔案,分別是參照表以及原始檔
其中一個參照表為
EX:
檔案DT
1 ^123.* A
2 ^234.* B
.
.
.
原始檔為
檔案DT2
1. 123456
2. 23456
經由比對可以發現
1.=>為A
2.=>為B
[你的答案]:
我的寫法是用迴圈方式然後
想請問有沒有更好的寫法
ansewer <- c()
for (i in 1:nrow(DT))
{
ind <- grepl(DT[i, 1, with=F], DT2)
for(j in which(ind==1))
{
ansewer[j] <- ifelse(TYPE[j]==0, DT2[i],ansewer[j] )
}
}
[關鍵字]:
grepl
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.51.170.56
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1476692454.A.C19.html
※ 編輯: huangsam (123.51.170.56), 10/17/2016 16:27:14
※ 編輯: huangsam (123.51.170.56), 10/17/2016 16:27:56
推
10/17 17:27, , 1F
10/17 17:27, 1F
→
10/17 17:29, , 2F
10/17 17:29, 2F
→
10/17 17:29, , 3F
10/17 17:29, 3F
→
10/17 17:29, , 4F
10/17 17:29, 4F
→
10/17 17:30, , 5F
10/17 17:30, 5F
→
10/17 17:31, , 6F
10/17 17:31, 6F
我是想要知道它裡面有哪些值沒錯,但是有個條件如果之前有比對出來就以先比對出來
的為主,所以才會多個迴圈判斷。
若是grepl(DT[i, 1, with=F], DT2)有多個條件有比較好的寫法嗎?
我是用grepl(DT[i, 1, with=F], DT2_1)*grepl(DT[i, 2, with=F], DT2_2),表示
兩個條件都要符合才可以
※ 編輯: huangsam (123.51.170.56), 10/17/2016 17:47:46
推
10/17 17:56, , 7F
10/17 17:56, 7F
→
10/17 17:56, , 8F
10/17 17:56, 8F
順序在前面且之前沒有被比對出來
EX:
A在1.3.5.7有比對出來就是A
B在1.4.9 因為1前面有比對出來A所以這次只有4.9是B
※ 編輯: huangsam (123.51.170.56), 10/17/2016 18:14:54
→
10/17 20:50, , 9F
10/17 20:50, 9F
→
10/17 20:50, , 10F
10/17 20:50, 10F
推
10/17 23:27, , 11F
10/17 23:27, 11F
討論串 (同標題文章)
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章
18
34