选择第二行矩阵中不在R的第一行中的元素

时间:2012-12-21 12:55:39

标签: r

我有一个带有两列的矩阵,两列中的一些数字相同,但第2列也包含一些不在第1列的数字。

我想在column2中选择那些不在column1中的值,然后按升序将它们插入column1。

作为一个开始,我在考虑使用像矩阵[矩阵[,1]%在%矩阵[,2]

中的矩阵运算

而不是%in%使用“not in”中的内容。

这是数据文件:

https://dl.dropbox.com/u/22681355/example.csv

example<-read.csv("example.csv")

示例[,2]包含一些例子[,1]没有的数字。

我想:

  1. 使用相当于%而非%
  2. 的内容搜索这些数字

    根据以下答案,我可以执行以下操作:

    values<-setdiff(example[,2],example[,1]
    
    order<-sort(values)
    

1 个答案:

答案 0 :(得分:2)

喜欢这个吗?

Rgames> foo
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    5    9   13   17
[2,]    2    6   10   14   18
[3,]    3    7    1   15   19
[4,]    4    8    3   16   20
Rgames> foo[,1]%in%foo[,3]
[1]  TRUE FALSE  TRUE FALSE
Rgames> foo[,1]*!foo[,1]%in%foo[,3]
[1] 0 2 0 4

我确信这是一种更清洁的方式。哎呀,就这样做:

Rgames> setdiff(foo[,1],foo[,3])
[1] 2 4