我实际上有一个简单的问题,我有一个数据矩阵(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,而不是第一行。
欢呼声,
答案 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))