Как реплицировать вектор в R - PullRequest
0 голосов
/ 21 февраля 2020

Мне нужно повторить вектор так, чтобы числа менялись, потому что в настоящее время я копирую только одни и те же числа.

пример:

> rep(c(sample(c(1:100),5, replace = T),sample(NA ,5, replace = T)), 2)
 [1] 33 91 48 18 29 NA NA NA NA NA 33 91 48 18 29 NA NA NA NA NA

I would like 
[1] 33 91 48 18 29 NA NA NA NA NA 23 45 27 67 55 NA NA NA NA NA

Ответы [ 3 ]

5 голосов
/ 21 февраля 2020

У вас даже было название функции в заголовке:)

mat <- 
  replicate(2, c(sample(c(1:100), 5, replace = T), sample(NA, 5, replace = T)))
mat
#       [,1] [,2]
#  [1,]    6   40
#  [2,]   86   37
#  [3,]    2   81
#  [4,]   35   57
#  [5,]   12   15
#  [6,]   NA   NA
#  [7,]   NA   NA
#  [8,]   NA   NA
#  [9,]   NA   NA
# [10,]   NA   NA

c(mat)
# [1]  6 86  2 35 12 NA NA NA NA NA 40 37 81 57 15 NA NA NA NA NA
3 голосов
/ 21 февраля 2020
as.vector(rbind(matrix(sample(c(1:100), 200, replace = T),5,40),matrix(NA,5,40)))

[1]  30  93   2  72  78  NA  NA  NA  NA  NA  36  90  40  37  72  NA  NA  NA  NA  NA  56  71 100 100  73  NA  NA  NA  NA
 [30]  NA  27  41  15  57  38  NA  NA  NA  NA  NA  62   6   4  35  99  NA  NA  NA  NA  NA  77  57  71  25  31  NA  NA  NA
 [59]  NA  NA  37  92  28  62  20  NA  NA  NA  NA  NA  29  42  60  65  28  NA  NA  NA  NA  NA  78  31  12  93  80  NA  NA
 [88]  NA  NA  NA  44  74  98  26  33  NA  NA  NA  NA  NA   4  53  86  89  24  NA  NA  NA  NA  NA  37  15  14  81  82  NA
[117]  NA  NA  NA  NA  97  96  72  53  56  NA  NA  NA  NA  NA  71  91  50  73  20  NA  NA  NA  NA  NA  98  93  75   2   3
[146]  NA  NA  NA  NA  NA  38  15  28  55  69  NA  NA  NA  NA  NA  92  78  37  43  81  NA  NA  NA  NA  NA   1  90  45  97
[175]  83  NA  NA  NA  NA  NA  90  23  68  80  91  NA  NA  NA  NA  NA  57  52  80  34  93  NA  NA  NA  NA  NA  35  74  70
[204]  60  39  NA  NA  NA  NA  NA  49  97  87  62  33  NA  NA  NA  NA  NA  35  11  13  50  60  NA  NA  NA  NA  NA  90  90
[233]  40  34  68  NA  NA  NA  NA  NA  56  25  38  81  88  NA  NA  NA  NA  NA  73  45  94  73  75  NA  NA  NA  NA  NA  22
[262]  96   3  51  19  NA  NA  NA  NA  NA  33  52   4  77  60  NA  NA  NA  NA  NA  65  64  53   5  44  NA  NA  NA  NA  NA
[291]  35  23  29  35  36  NA  NA  NA  NA  NA  73  99  35  20  22  NA  NA  NA  NA  NA  41  86  83  18  44  NA  NA  NA  NA
[320]  NA  39  29  91  36  32  NA  NA  NA  NA  NA  95  51  81  51  52  NA  NA  NA  NA  NA  89  73  21  21  79  NA  NA  NA
[349]  NA  NA  64  88  78  71  59  NA  NA  NA  NA  NA  91  90  30  58  15  NA  NA  NA  NA  NA  64   6  34  21   1  NA  NA
[378]  NA  NA  NA  17  77  62  45  90  NA  NA  NA  NA  NA  40  66  41   8  25  NA  NA  NA  NA  NA

1 голос
/ 21 февраля 2020

это дополнительная строка, но она выполняет свою работу:

fun <- function() c(sample(c(1:100),5, replace = T), sample(NA ,5, replace = T))

c(fun(), fun())
...