我有一个带有两列的矩阵,两列中的一些数字相同,但第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]没有的数字。
我想:
根据以下答案,我可以执行以下操作:
values<-setdiff(example[,2],example[,1]
order<-sort(values)
答案 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