有可能在R中有一个只有1行的矩阵吗?
下面是我的代码:
   nas <- which(!is.na(y))   
   x <- x[nas,]
   y <- y[nas]
   ...
   data.frame(y,x)我的想法是,我有一个向量y和矩阵x,y可以包含一些nA值,我想要找到这些值,并从向量和矩阵中删除这些值的索引。
问题是,当y中只有一个不是NA的值时,这意味着我必须从y中删除除1个元素之外的所有元素,并从x中删除除1行以外的所有元素,这个矩阵只有1行,它似乎被转换为数字,这似乎破坏了data.frame操作。我原以为它会返回包含1行的frame :Y x1 x2 ..,结果却得到:
   y    x
1  0 12.0
2  0 14.8
3  0 14.2
4  0 14.8
5  0  2.0
6  0  4.0
7  0  1.0
8  0  2.0
9  0 26.0
10 0  4.0
11 0  6.0
12 0  2.0
13 0 16.0发布于 2012-09-26 20:29:03
您需要指定drop = FALSE以停止R将矩阵或数组强制到可能的最低维数。有关更多详细信息,请参阅?`[`。
x <- matrix(1:4,ncol=2)
x[1,]
## [1] 1 2
x[1,,drop=F]
##      [,1] [,2]
## [1,]    1    3发布于 2012-09-26 20:29:20
正如Patrick Li在评论中指出的那样,它肯定是正确的,但如果您使用vector()函数创建它,就不是这样了。
所以:
R> matrix(1:4, nrow=1)
     [,1] [,2] [,3] [,4]
[1,]    1    2    3    4
R> matrix(1:4, ncol=1)
     [,1]
[1,]    1
[2,]    2
[3,]    3
[4,]    4
R> matrix(1:4, ncol=2)
     [,1] [,2]
[1,]    1    3
[2,]    2    4
R>     有关使用matrix()的更多选项,请参阅其帮助页面。有关非常基本的问题(提示:drop=FALSE)的更多信息,请参阅R FAQ。
https://stackoverflow.com/questions/12601692
复制相似问题