作者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