[問題] 比對兩個dataframe

看板R_Language作者 (小笨)時間8年前 (2016/04/12 11:07), 8年前編輯推噓0(0012)
留言12則, 2人參與, 最新討論串1/1
各位好,我現在有兩筆資料,是我用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))來跑,好像就沒出來了。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.236.125.210 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1460430470.A.84A.html

04/12 11:20, , 1F
你迴圈有j嗎?
04/12 11:20, 1F

04/12 11:21, , 2F
然後 new = A & !B 這樣應該就出來了
04/12 11:21, 2F

04/12 11:22, , 3F
第二個 new確實應該先給定大小
04/12 11:22, 3F

04/12 11:27, , 4F
抱歉,是我寫錯 第二個是j 代表row的數量 PTT不太會用
04/12 11:27, 4F
※ 編輯: clansoda (36.236.125.210), 04/12/2016 11:28:04

04/12 11:40, , 5F
不用跟我道歉@@,這樣問題有解決了嗎?
04/12 11:40, 5F

04/12 11:57, , 6F
感謝,這個方法真的很好,我還在那邊用for loop慢慢弄
04/12 11:57, 6F

04/12 11:57, , 7F
但是我不知道我的for loop哪裡錯了,我覺得我沒超過
04/12 11:57, 7F

04/12 11:58, , 8F
那個限制的大小,因為我是比對j row跟i col 是否符合
04/12 11:58, 8F

04/12 11:58, , 9F
然後指定到第三個dataframe的j row i col
04/12 11:58, 9F

04/12 11:58, , 10F
一個對一個 應該不會超過matrix的大小阿
04/12 11:58, 10F

04/12 12:12, , 11F
你可能要確定A B大小吧 我無法臆測到你的問題
04/12 12:12, 11F

04/12 12:12, , 12F
看你程式應該是沒錯的
04/12 12:12, 12F
文章代碼(AID): #1N36Q6XA (R_Language)