搜索与变量匹配的列

时间:2013-01-11 11:57:49

标签: r

我实际上有一个简单的问题,我有一个数据矩阵(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)

我想创建一个新矩阵(file2),它只包含与变量“R”匹配的列

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

欢呼声,

3 个答案:

答案 0 :(得分:1)

试试这个:

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

答案 1 :(得分:1)

这个怎么样?

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

答案 2 :(得分:1)

如果要匹配列名:

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))

如果您的R实际上包含数据集A,C,E,F,并且因为您可能具有不同的名称但是具有相同的值列表:

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))