您好我有一个关于R.的快速问题 我有三个陈述:
n=187
a <- MatrixA[ (1):(4*n), c('x1','y') ]
b <- MatrixA[ (1):(4*n), c('y') ]
其中矩阵A是1250 x 2矩阵,第一列标记为“x1”,第二列标记为“y”。
我运行命令并且a变为748 x 2 矩阵但是b是值(它表示int [1:748] blablabla)。
为什么是这样?我很困惑:这些陈述几乎完全相同。
我的最终目标是将b创建为748 x 1矩阵,其值为'y'列。
任何帮助表示感谢,感谢您阅读!
关于Rstudio:版本0.99.893 - ©2009-2016 RStudio,Inc。 Mozilla / 5.0(Macintosh; Intel Mac OS X 10_11_3)AppleWebKit / 601.4.4(KHTML,与Gecko一样)
答案 0 :(得分:3)
当进行子集化时,如果可能,R将简化输出。例如,如果您只选择矩阵的单个列,则默认情况下它将被强制转换为矢量。有关详细信息,请参阅here。
快速解决方案是:
b <- MatrixA[ (1):(4*n), c('y'), drop=FALSE]