diff --git a/src/main/seq.c b/src/main/seq.c index e759fb8e4c7..3a360ebb3a2 100644 --- a/src/main/seq.c +++ b/src/main/seq.c @@ -189,6 +189,11 @@ static SEXP rep2(SEXP s, SEXP ncopy) u = CDR(u); } break; + case RAWSXP: + for (i = 0; i < nc; i++) + for (j = 0; j < (INTEGER(t)[i]); j++) + RAW(a)[n++] = RAW(s)[i]; + break; default: UNIMPLEMENTED("rep2"); } @@ -270,6 +275,10 @@ static SEXP rep(SEXP s, SEXP ncopy) for (i = 0; i < na; i++) SET_VECTOR_ELT(a, i, duplicate(VECTOR_ELT(s, i% ns))); break; + case RAWSXP: + for (i = 0; i < na; i++) + RAW(a)[i] = RAW(s)[i % ns]; + break; default: UNIMPLEMENTED("rep"); }