我有一个很大的数据框,在其中打印与另一列不匹配的列。我能够将第4列和第9列与以下代码段进行比较:
memory = MemoryMappedFile.CreateOrOpen("hookFreePIE", 68, MemoryMappedFileAccess.ReadWrite);
accessor = memory.CreateViewAccessor();
ewh = EventWaitHandle.OpenExisting("ewhFreePIE");
:
:
// sample of loop
public void StartLoop()
{
while (running)
{
ewh.WaitOne();// wait Set() of another or same process
if (cmdtostop) //you could create cmdstop inside memorymapped file (set first byte to 1 for example
{
running = false;
}
else
{
//do something with data , using accessor.Read
}
}
但是,我想打印第4列和第9列不匹配或者第6列和第11列不匹配的数据框。因此,如果其中一个参数为true,它将打印。
我尝试使用:
test_no_match <- newtest[which(newtest[,4] != newtest[,9] ),]
但是我不断收到
之类的错误“ x ||”中无效的“ x”类型y'
是否可以同时比较多个参数?谢谢。
答案 0 :(得分:0)
...怎么了...
testnomatch<- (newtest[which(newtest[,4] != newtest[,9] ),] || newtest[which(newtest[,6] != newtest[,11] ),])
几件事。
首先,||
期望使用长度为1的条件,并打算在诸如if(a || b) ....
之类的条件语句中使用。
第二,|
旨在加入两个相同长度的条件。在这里,您有所不同。
因此,将各个部分放在一起:
condition1 <- newtest[,4] != newtest[,9]
condition2 <- newtest[,6] != newtest[,11]
jointcondition <- condition1 | condition2
testnomatch <- newtest[which(jointcondition),]
或一行:
newtest[which((newtest[,4] != newtest[,9]) | (newtest[,6] != newtest[,11])),]
这应该可以,但是当然,由于您没有提供可重复的示例,因此我没有机会尝试:)