作者outspeak (無可奉告)
看板Statistics
標題[程式] R要如何篩選矩陣資料並排序
時間Fri Jul 9 21:33:16 2010
請問一下 若要對從A篩選一些在B也有的資料應該怎麼寫
例如
A=matrix(c('d','d','c','a',1:12),4,4)
> A
[,1] [,2] [,3] [,4]
[1,] "d" "1" "5" "9"
[2,] "d" "2" "6" "10"
[3,] "c" "3" "7" "11"
[4,] "a" "4" "8" "12"
B=matrix(c('c','d','c','b',1:12),4,4)
> B
[,1] [,2] [,3] [,4]
[1,] "c" "1" "5" "9"
[2,] "d" "2" "6" "10"
[3,] "c" "3" "7" "11"
[4,] "b" "4" "8" "12"
比較A、B二矩陣的第一行 若A中的字母屬於B中所有就將該列整個存到矩陣C並將C矩陣按
字母順序重新排列
我希望結果為C矩陣
>C
[,1] [,2] [,3] [,4]
[1,] "c" "3" "7" "11"
[2,] "d" "1" "5" "9"
[3,] "d" "2" "6" "10"
用 A[is.element(A[,1],B[,1])]跑出來的結果不是我想要的
要怎樣做才能跑出C矩陣呢??
------------------------------------------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.54.206
1F:→ clickhere:A[is.element(A[,1],B[,1]), 1] 07/10 01:03
2F:→ clickhere:help(apply) 07/10 01:03
3F:推 acecc:土法煉鋼~應該有更好的方法 07/10 10:01
4F:→ acecc:A[order(A[which(A[, 1] %in% B[, 1]), 1]), ] 07/10 10:01
5F:→ gsuper:step 1 --> 把所有 rows 內的 alphabat 用 paste() 黏合 07/10 12:40
6F:→ gsuper:step 2 --> 用 %in% 找出 index number 07/10 12:40
7F:→ gsuper:step 3 --> 把資料從 A 挑出 07/10 12:41