Почему ncol и nrow дают только NULL, когда у меня есть данные?
Я новичок в R
, поэтому, скорее всего, это глупый вопрос.
Каждый раз, когда я создаю искусственные данные и иногда использую импортированные наборы данных, R
говорит мне, что у моих переменных нет строк или столбцов.
Я могу запускать регрессии, но я не могу основывать команды на количество строк/столбцов, которые имеют мои переменные.
Например, скажем, у меня есть переменная x1
, которая представляет собой столбец-вектор из 100
наблюдений.
ncol(x1)
NULL
nrow(x1)
NULL
Однако, если я это сделаю:
x=t(x)
x=t(x)
и снова введите ncol(x), nrow(x)
, затем я получу фактическое количество столбцов, строк, которые имеет объект.
Почему это происходит и как я могу исправить это, не используя t()
?
Ответы
Ответ 1
Для NCOL(x)
нужно использовать 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