作者clansoda (小笨)
看板R_Language
标题[问题]比对两个dataframe
时间Tue Apr 12 11:07:46 2016
各位好,我现在有两笔资料,是我用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://webptt.com/cn.aspx?n=bbs/R_Language/M.1460430470.A.84A.html
1F:→ celestialgod: 你回圈有j吗? 04/12 11:20
2F:→ celestialgod: 然後 new = A & !B 这样应该就出来了 04/12 11:21
3F:→ celestialgod: 第二个 new确实应该先给定大小 04/12 11:22
4F:→ clansoda: 抱歉,是我写错 第二个是j 代表row的数量 PTT不太会用 04/12 11:27
※ 编辑: clansoda (36.236.125.210), 04/12/2016 11:28:04
5F:→ celestialgod: 不用跟我道歉@@,这样问题有解决了吗? 04/12 11:40
6F:→ clansoda: 感谢,这个方法真的很好,我还在那边用for loop慢慢弄 04/12 11:57
7F:→ clansoda: 但是我不知道我的for loop哪里错了,我觉得我没超过 04/12 11:57
8F:→ clansoda: 那个限制的大小,因为我是比对j row跟i col 是否符合 04/12 11:58
9F:→ clansoda: 然後指定到第三个dataframe的j row i col 04/12 11:58
10F:→ clansoda: 一个对一个 应该不会超过matrix的大小阿 04/12 11:58
11F:→ celestialgod: 你可能要确定A B大小吧 我无法臆测到你的问题 04/12 12:12
12F:→ celestialgod: 看你程式应该是没错的 04/12 12:12