R 如何删除一列中与第二列不匹配的行?

R 如何删除一列中与第二列不匹配的行?,r,loops,if-statement,R,Loops,If Statement,我有以下问题,我不知道在R中从何处开始: 我有两列具有相同的信息,但其中一列包含一些附加信息。我希望两列完全相同。以下是一个例子: 1 1 1 1 2 1 2 2 3 2 3 2 4 2 4 3 5 3 5 3 4 4 4 5 5 5 5 5 因此,必须删除第二列中的一些数字,以便两列的长度相等,并且每行中的数字相同。我想有可能构造一个循环,让R删除第二列中的数字,直到column1=col

我有以下问题,我不知道在R中从何处开始: 我有两列具有相同的信息,但其中一列包含一些附加信息。我希望两列完全相同。以下是一个例子:

1   1
1   1
2   1
2   2
3   2
3   2
4   2
4   3
5   3
5   3
    4
    4
    4
    5
    5
    5
    5
    5
因此,必须删除第二列中的一些数字,以便两列的长度相等,并且每行中的数字相同。我想有可能构造一个循环,让R删除第二列中的数字,直到
column1=column2

但我不知道从哪里开始。甚至有可能R会自动读取两列,并在两行不匹配的情况下删除吗?

从字面上回答您的问题,这将只返回列1==列2的行以及带有NA的行也被删除。如果这不是您所期望的输出,请进一步澄清您的问题,最好举个例子

>dat-dat[dat$V1==dat$V2&complete.cases(dat),]
V1 V2
1  1  1
2  1  1
4  2  2

首先,让我们制作一些R对象来说明您的问题:

a <- c(1,1,2,2,3,3,4,4,5,5)
b <- c(1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,5)
现在您可以将它们绑定在一起:

 c <- cbind(a2, b)

你能多写一点你的问题吗?这些数字是多少?两个独立的向量?如何创建它们?难道你不能复制第一个(你文章中的第一列)并将原始和副本合并到一个数组中吗?我真的不明白你问题的要点。@David-我相信这是R2.14.xx中添加的一个相对较新的论点。
c <- cbind(a,b)
  Warning message:
In cbind(a, b) :
  number of rows of result is not a multiple of vector length (arg 1)
 a2 <- append(a, rep(NA, 6) 
 c <- cbind(a2, b)
 d <- cbind(a,a)