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)

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

我认为这应该是一个简单的命令,但我找不到正确的方法来编写它。请注意,ABCDEF 是列名,而不是第一行。

干杯,

4

3 回答 3

1

试试这个:

m <- matrix(rnorm(100), ncol = 10)
colnames(m) <- LETTERS[1:10]
myR <- c("A", "C", "D")
m2 <- m[,myR]
于 2013-01-11T12:07:09.673 回答
1

那这个呢?

R = c("A","C","E","F");
file2 = file1[,R];
于 2013-01-11T12:09:18.307 回答
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))
于 2013-01-11T12:11:45.797 回答