Почему rbind не работает, когда я использую rep ()? - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь связать 2 столбца, один из которых является просто повторением NA для 20 строк, который я сделал, используя rep (NA, 20), а затем другой столбец данных с номером, который у меня есть, т.е. data <- (1:20). </p>

То, что я хочу, это просто таблица NA NA NA NA NA NA 1 2 3, очевидно, с большим количеством цифр.

По какой-то причине, когда я rbind (респ (NA, 20),данные), NA отображается только в первом поле, а не в 20 строках, как я хочу.

Я использовал это раньше, и он работал нормально, так что происходит?

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019

Это то, что создает желаемый столбец:

data <- as.matrix(1:20, ncol = 1)
rbind(as.matrix(rep(NA,20), ncol = 1)
      , data)

Пример с пятью записями данных и результатом в одном столбце.

rbind(as.matrix(rep(NA,5), ncol = 1)
      , data)
      [,1]
 [1,]   NA
 [2,]   NA
 [3,]   NA
 [4,]   NA
 [5,]   NA
 [6,]    1
 [7,]    2
 [8,]    3
 [9,]    4
[10,]    5

Другой вариант:

data <- (1:10)
rbind(c(rep(NA,10), data))
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20]
[1,]   NA   NA   NA   NA   NA   NA   NA   NA   NA    NA     1     2     3     4     5     6     7     8     9    10

Необходимо учитывать размеры отдельных матриц, а также то, что матрицы могут хранить данные только одного типа. Я бы посоветовал взглянуть на data.frames, которые могут хранить разные типы данных на столбец.

0 голосов
/ 06 ноября 2019

Может быть, вы можете сделать

data.frame(V1 = c(rep(NA, 20), data))

Или, если вам нужна матрица

cbind(c(rep(NA, 20), data))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...