为什么当我有数据时,ncol和nrow只产生NULL?

时间:2014-12-28 08:49:09

标签: r

我是R的新手,所以很可能这是一个愚蠢的问题 每当我创建人工数据时,有时使用导入的数据集,R告诉我我的变量没有行或列。
我可以运行回归,但我不能根据变量的行/列数来确定命令 例如,假设我有一个变量x1,它是100观察的列向量。

ncol(x1)

NULL

nrow(x1)

NULL

但是,如果我这样做:

x=t(x)
x=t(x)

再次输入ncol(x), nrow(x),然后我得到对象所拥有的实际列数,行数。

为什么会发生这种情况?如何在不使用t()的情况下解决此问题?

1 个答案:

答案 0 :(得分:24)

您需要使用NCOL(x)NROW(x)作为向量。 通过转置x(t(x)),您可以将其转换为矩阵,然后ncol(x)nrow(x)就可以了。

它位于帮助文件中:

  

?ncol nrow和ncol返回x中存在的行数或列数。   NCOL和NROW将载体视为1列矩阵。

> x <- 1:100
> is.matrix(x)
[1] FALSE
> NCOL(x)
[1] 1
> y <- t(x)
> is.matrix(y)
[1] TRUE
> ncol(y)
[1] 100