2

Please pardon me for such silly question.

If I want to build a try as this: 2 "", "Try1", n-1 "", "Try2", n-1 "", which n is number of elements in Level.

 level <- c("L1", "L2", "L3", "L4") try<- t(c("","", "Try1" ,"","","", "Try2","","", "")) 

Is it a way to build try in a way like 2"", "Try1", (length(level)-1)"", "Try2", (length(level)-1)""?

0

3 Answers 3

2

We may use

n <- length(Level) - 1 tail(na.omit(c(mapply(`c`, replicate(n, rep("", n), simplify = FALSE), c(paste0("Try", 1:2), NA)))), -1) [1] "" "" "Try1" "" "" "" "Try2" "" "" "" 
Sign up to request clarification or add additional context in comments.

Comments

1

Assuming you might want more than just 'Try1' and 'Try2'

Level <- c("L1", "L2", "L3", "L4") tryCt <- 2 try <- c( "", "", paste0("Try", seq(tryCt)) |> purrr::map(~c(.x, rep("", length(Level) - 1))) |> purrr::reduce(c) ) 

Comments

0

You can do something like this:

generate_try <- function(n) { t(c("","", unlist(lapply((n-1):2, \(i) c(paste0("Try", n-i),rep("", i)))),"")) } 

Usage:

generate_try(4) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] "" "" "Try1" "" "" "" "Try2" "" "" "" 
generate_try(10) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16] [1,] "" "" "Try1" "" "" "" "" "" "" "" "" "" "Try2" "" "" "" [,17] [,18] [,19] [,20] [,21] [,22] [,23] [,24] [,25] [,26] [,27] [,28] [,29] [,30] [,31] [1,] "" "" "" "" "" "Try3" "" "" "" "" "" "" "" "Try4" "" [,32] [,33] [,34] [,35] [,36] [,37] [,38] [,39] [,40] [,41] [,42] [,43] [,44] [,45] [,46] [1,] "" "" "" "" "" "Try5" "" "" "" "" "" "Try6" "" "" "" [,47] [,48] [,49] [,50] [,51] [,52] [,53] [,54] [,55] [1,] "" "Try7" "" "" "" "Try8" "" "" "" 
generate_try(length(Level)) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] "" "" "Try1" "" "" "" "Try2" "" "" "" 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.