2013-08-06 18 views
-1

在下面的代码中,我创建了一个矩阵mat2,其中包含mat1中的一组随机行。我还需要创建第二个矩阵(mat3),其中所有行都不在mat2中。我怎样才能做到这一点?创建2个矩阵 - 按行抽样,然后不在样本中

NumRows = 100 
NumSample = 30 

mat1 = matrix (1:10000, nrow=NumRows) 
rownames (mat1) <- paste ("I", 1:100, sep = "") 
colnames (mat1) <- paste ("I", 1:100, sep = "") 
KeepRows = sample(1:nrow(mat1), NumSample) 
mat2 = mat1[KeepRows, ] 
+4

'mat3 = mat1 [-KeepRows,]' –

+0

谢谢杰克。这有效,而且它非常简单,非常酷。我需要找到一些教会我为什么它可以工作的东西,因为它似乎表示排负号意味着“摆脱这一行”。奇怪,但同时很酷。 – LGTrader

+0

顺便说一句 - 正如你在评论中回答了这个问题,我似乎无法将你的回答标记为答案。我猜想我对网站软件的限制。 – LGTrader

回答

1

mat3 = mat1[-KeepRows,]

这里有一个博客贴子,越过索引中R. http://www.johndcook.com/blog/2008/10/23/five-kinds-of-r-language-subscripts/

另一份文件上介绍到R,它对于任何r用户一个伟大的阅读的链接。 http://www.cran.r-project.org/doc/manuals/R-intro.pdf

+0

感谢您的第一个链接。我在这里有R-Intro文档,但即使知道这个问题的答案,现在我无法在该文档中搜索出它。无论如何,非常感谢答案。这有很大的帮助。 – LGTrader

+0

我最初在评论中回复,因为我找不到任何好的内容来发布负面索引。我希望别人知道什么。在这一点上,我完全同意你的观点,找到这个文件并不容易 –

+0

我发现它!第2.7节“3.一个负整数量的向量,这样的一个索引向量指定排除而不是包括在内的值为 > y <-x [ - (1:5)] 给出除了前五元素x“ –