Computer Science, asked by ridhima7477, 11 months ago

How to insert an element at a particular index in vector in r?

Answers

Answered by nagulasagar51
0
Insert values to a vector at certain positions

Description

Insert values to a vector at certain positions.

Usage

## Default S3 method: insert(x, ats, values=NA, useNames=TRUE, ...)

Arguments

xThe vector of data values.atsThe indices of x where the values should be inserted.valuesA list or a vector of the values to be inserted.useNamesIf FALSE, the names attribute is dropped/ignored, otherwise not. Only applied if argument x is named....Not used.

Author(s)

Henrik Bengtsson

Examples

# Insert at first position y <- c(a=1, b=2, c=3) print(y) x <- insert(y, ats=1, values=rep(NA,2)) Ex <- c(NA,NA,y) print(x) stopifnot(identical(x,Ex)) x <- insert(y, ats=1, values=rep(NA,2), useNames=FALSE) print(x) # Insert at last position (names of 'values' are ignored # because input vector has not names) x <- insert(1:3, ats=4, values=c(d=2, e=1)) Ex <- c(1:3,2,1) print(x) stopifnot(identical(x,Ex)) # Insert in the middle of a vector x <- insert(c(1,3,2,1), ats=2, values=2) print(x) stopifnot(identical(as.double(x),as.double(Ex))) # Insert multiple vectors at multiple indices at once x0 <- c(1:4, 8:11, 13:15) x <- insert(x0, at=c(5,9), values=list(5:7,12)) print(x) Ex <- 1:max(x) stopifnot(identical(as.double(x),as.double(Ex))) x <- insert(x0, at=c(5,9,12), values=list(5:7,12,16:18)) print(x) Ex <- 1:max(x) stopifnot(identical(as.double(x),as.double(Ex))) # Insert missing indices Ex <- 1:20 missing <- setdiff(Ex, x0) x <- x0 for (m in missing) x <- insert(x, ats=m, values=m) print(x) stopifnot(identical(as.double(x),as.double(Ex)))
Similar questions