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

Goo*_*ose 13 r

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

ncol(x1)

NULL

nrow(x1)

NULL
Run Code Online (Sandbox Code Playgroud)

但是,如果我这样做:

x=t(x)
x=t(x)
Run Code Online (Sandbox Code Playgroud)

ncol(x), nrow(x)然后再键入,然后我得到对象具有的实际列数,行数.

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

bee*_*oot 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
Run Code Online (Sandbox Code Playgroud)