2013-01-11 68 views
0

这里我有一个简单的问题,我有一个数据矩阵(file1)(比如说20列100行)。它看起来像这样搜索与变量匹配的列

A B C D E F ... 
5 6 2 3 4 5 ... 
5 6 2 3 4 5 ... 
5 6 2 3 4 5 ... 
5 6 2 3 4 5 ... 
5 6 2 3 4 5 ... 
. . . . . . 
. . . . . . 
. . . . . . 

我有一个变量命名为“R”是

R <- c(A,C,E,F) 

我要让仅包含匹配变量“R”

该列的新矩阵(文件2)

它应该是一个简单的命令,我认为,但我无法找到正确的方式来写这个。 请注意,A B C D E F是姓名,而不是第一行。

欢呼声,

+2

您必须搜索过* real * hard! – flodel

回答

1

这个怎么样?

R = c("A","C","E","F"); 
file2 = file1[,R]; 
1

试试这个:

m <- matrix(rnorm(100), ncol = 10) 
colnames(m) <- LETTERS[1:10] 
myR <- c("A", "C", "D") 
m2 <- m[,myR] 
1

如果你想匹配的列名:如果实际上你的R含有数据集A,C,E,F

Dataset <- data.frame(A=A,B=B,C=C,D=D,E=E,F=F) 
R <- c("A","C","E","F") 
match(R,names(Dataset)) 

因为你可能有一个diferent的名字,但值相同的列表:

Dataset <- data.frame(A=A,B=B,C=C,D=D,E=E,F=F) 
R <- data.frame(A=A,C=C,E=E,FF) 
which(match(names(R),names(Dataset)) & match(R,Dataset))