私はデータファイルを持っています:
https://dl.dropbox.com/u/22681355/example.csv
ファイルの読み取り:
example<-read.csv("example.csv")
example<-example[,-1]
example [、1]には、番号順に増加する番号のリストが含まれています。example [、2]には別の数字のセットが含まれています
まず、example [、1]にリストされていないexample [、2]の番号を特定したいと思います。
diff<-setdiff(example[,2],example[,1])
これらの値がわかったので、example [、1]に挿入し、example [、1]とexample [、2]の既存の値をそのまま残します。
簡単な例は次のとおりです。
Example[,1] Example[,2]
1 1000
1 50
1 3
1 90
1 25
3 4
5 2
5 7
etc etc
setdiff()を実行した後、最初の列ではなく2番目の列に数値が表示されます。
次に、それらをexample [、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はJorisMeysによって見事に解決されました!
さらに2つの質問があります。
////////////////////////////////////////////////// ///////////////////////////////////////
1:
追加の3番目の列があるが、それで何もしたくない場合も同じことができますか?
例えば:
オリジナル
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:
example [、1]にexample [、2]の値がない場合に、example [、2]にNAを追加する代わりに、たとえばexample [、1]に番号「30」がない場合は、検索します。 example [、2]の番号が「30」であるかどうかを確認し、example [、1]がその行にどのような値を持っているかを確認してから、NAの代わりにexample [、2]に追加します。
例えば:
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