以下は私のコードです
### makes indiviual matrix of data ## #####READ IN FILES########## one<-matrix(c(2001,2002,2003,2004,23456, 23567,54321,12345),4,2); two<-matrix(c(54321,23567,23456,12345,1234,2345,3456,7777),4,2); three<-matrix(c(3456,7777,2345,1234,5677,6789,6678,6767),4,2); four<-matrix(c(6678,5677,6767,5555,1111,1112),4,2); five<-matrix(c(5555,1112,1111,2222,1212,9999),4,2);
## order all data by second column and spit out NAs if number in second column of
## previous matrix doesnt match first column of new matrix
onea<-one[order(one[,2]),]; twoa<-two[order(two[,1])[rank(onea[,2])],]; threea<-three[order(three[,1])[rank(twoa[,2])],] foura<-four[order(four[,1])[rank(threea[,2])],] fivea<-five[order(five[,1])[rank(foura[,2])],] finaltable<-cbind(onea,twoa,threea,foura,fivea)
これらは私が得ている警告メッセージです:
Warning message:
In matrix(c(6678, 5677, 6767, 5555, 1111, 1112), 4, 2) :
data length [6] is not a sub-multiple or multiple of the number of rows [4]
> five<-matrix(c(5555,1112,1111,2222,1212,9999),4,2);
Warning message:
In matrix(c(5555, 1112, 1111, 2222, 1212, 9999), 4, 2) :
data length [6] is not a sub-multiple or multiple of the number of rows [4]
私がやりたいことはこれです。threea[,2] のランクから (four[,1]) を注文すると、欠損値があります。threea[,2] の数字が foura[,1] に見つからない場合はいつでも、その数字の向かい側に NA と表示するようにします。以下、言いたいこと。可能であれば、これをかなり自動化する必要があります。また、 NA 値は、互いに一致する他の数値に影響を与えることなく、テーブル全体に存在できる必要があります。
finaltable
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 2004 12345 12345 7777 7777 6789 NA NA NA NA
[2,] 2001 23456 23456 3456 3456 5677 5677 1111 1111 8888
[3,] 2002 23567 23567 2345 2345 6678 6678 5555 5555 2222
[4,] 2003 54321 54321 1234 1234 6767 6767 1112 1112 9999