我有一个数据文件:匹配的一列到另一数字顺序中的R
https://dl.dropbox.com/u/22681355/example.csv
读取文件:
example<-read.csv("example.csv")
example<-example[,-1]
示例[1]包含数字的数字顺序增加的列表。 示例[2]包含另一组数字
首先我想例如在识别号码[2]的关联例子中没有列出的[1]
diff<-setdiff(example[,2],example[,1])
现在我知道这些值我想将它们插入到示例[,1]中,使示例[,1]和示例[,2]中的现有值保持不变。
一个简短的例子是:
Example[,1] Example[,2]
1 1000
1 50
1 3
1 90
1 25
3 4
5 2
5 7
etc etc
后,我跑setdiff()我得到的号码不是在第一列,但在第二位。现在
我想将它们例如[,1],产生以下的输出:
Example[,1] Example[,2]
1 1000
1 50
1 3
1 90
1 25
2 NA
3 4
4 NA
5 2
5 7
etc etc
所以基本上将它们放置在数字顺序,但离开一切完好。
第1部分通过Joris Meys出色地解决!
我有两个进一步的问题:
//////////////////////////////////// ///////// //////////////////////////////////////// ////
1:
能同做,如果有一个附加的第三列,但我并不想用它做什么?
例如:
原始
Example[,1] Example[,2] Example[,3]
1 1000 37
1 50 18
1 3 54
1 90 72
1 25 23
3 4 15
5 2 20
5 7 9
etc etc
期望的输出:
Example[,1] Example[,2] Example[,3]
1 1000 37
1 50 18
1 3 54
1 90 72
1 25 23
2 NA NA
3 4 15
4 NA NA
5 2 20
5 7 19
etc etc
2:
代替实施例中加入NA [2]用于以下情况为例[, 1]没有来自example [,2]的值,例如[,1]没有数字'30',那么我想海例如[,2]是否具有数字'30',并查看示例[,1]在该行中具有的值,然后将其添加到示例[,2]而不是NA中。
例如:
Example[,1] Example[,2] Example[,3]
1 1000 37
1 50 18
1 3 54
1 90 72
1 25 23
2 NA NA
3 4 15
4 NA NA
5 2 20
5 7 19
etc etc
相反NA的有:
Example[,1] Example[,2] Example[,3]
1 1000 37
1 50 18
1 3 54
1 90 72
1 25 23
2 5 20
3 4 15
4 3 15
5 2 20
5 7 19
etc etc
这将改变原始数据,请参阅上文。基本上,如果我运行这个命令,一些现有的数据将被销毁。 – user1723765
基本上问题只是第二部分而不是匹配是否有一些其他的命令不会摆脱其他部分的数据? – user1723765
@ user1723765查看我答案的更新。 –