[問題] 比對兩個dataframe

作者: clansoda (小笨)   2016-04-12 11:07:46
各位好,我現在有兩筆資料,是我用apply function跑grepl 跑出來的
兩個資料都是TRUE跟FALSE兩種來填滿整個dataframe
我現在想找A資料的[j,i]為TRUE而B資料[j,i]為FALSE的資料
我用 for (i in 1:ncol(A)) {
for (j in 1:nrow(A)) {
if (A[j,i]==TURE & B[j,i]==FALSE) {
new[j,i]<-TRUE } else {
new[j,i]<-FALSE }
}
}
結果會一直跑出argument is of length zero
與subscript out of bounds 這兩種
第一個我google它讓我加上is.null在IF函數裡面但是沒有用
第二個不知道是不是new data要先做成跟A和B一樣的大小
所以我有用matrix(nrow=nrow(A),ncol=ncol(A))來跑,好像就沒出來了。
作者: celestialgod (天)   2016-04-12 11:20:00
你迴圈有j嗎?然後 new = A & !B 這樣應該就出來了第二個 new確實應該先給定大小
作者: clansoda (小笨)   2016-04-12 11:27:00
抱歉,是我寫錯 第二個是j 代表row的數量 PTT不太會用
作者: celestialgod (天)   2016-04-12 11:40:00
不用跟我道歉@@,這樣問題有解決了嗎?
作者: clansoda (小笨)   2016-04-12 11:57:00
感謝,這個方法真的很好,我還在那邊用for loop慢慢弄但是我不知道我的for loop哪裡錯了,我覺得我沒超過那個限制的大小,因為我是比對j row跟i col 是否符合然後指定到第三個dataframe的j row i col一個對一個 應該不會超過matrix的大小阿
作者: celestialgod (天)   2016-04-12 12:12:00
你可能要確定A B大小吧 我無法臆測到你的問題看你程式應該是沒錯的

Links booklink

Contact Us: admin [ a t ] ucptt.com