0

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

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

作为开始,我正在考虑使用一些矩阵运算,例如 matrix[matrix[,1]%in%matrix[,2]

只是代替 %in% 使用“不在”中的东西。

这是数据文件:

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

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

example[,2] 包含一些 example[,1] 没有的数字。

我想:

  1. 使用相当于 %not in % 的内容搜索这些数字

按照下面的答案,我可以执行以下操作:

values<-setdiff(example[,2],example[,1]

order<-sort(values)
4

1 回答 1

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
于 2012-12-21T13:07:11.953 回答