在 R 中创建嵌套序列
creating nested sequences in R
我想创建以下 vector
,它由两个嵌套的 sequences
以及字母 a
和 b
组成:
desired.data <- c('a1b1', 'a1b2', 'a1b3', 'a2b1','a2b2', 'a2b3',
'a3b1', 'a3b2', 'a3b3', 'a4b1','a4b2', 'a4b3',
'a5b1', 'a5b2', 'a5b3')
我怀疑这是重复的,但我搜索了 Stack Overflow
一个小时但没有成功。感谢您的任何建议。
使用 paste0
、rep
及其 each
参数,并依赖向量回收:
paste0("a", rep(1:5, each = 3), "b", 1:3)
#[1] "a1b1" "a1b2" "a1b3" "a2b1" "a2b2" "a2b3" "a3b1" "a3b2" "a3b3" "a4b1" "a4b2" "a4b3" "a5b1" "a5b2" "a5b3"
如果字符串中的模式比两个数字和两个字符更复杂,那么这里有一个替代解决方案可能更可行
concat <- function(x) paste0('a', x[, 2], 'b', x[, 1])
concat(expand.grid(1:3, 1:5))
#[1] "a1b1" "a1b2" "a1b3" "a2b1" "a2b2" "a2b3" "a3b1" "a3b2" "a3b3" "a4b1" "a4b2" "a4b3" "a5b1" "a5b2" "a5b3"
我想创建以下 vector
,它由两个嵌套的 sequences
以及字母 a
和 b
组成:
desired.data <- c('a1b1', 'a1b2', 'a1b3', 'a2b1','a2b2', 'a2b3',
'a3b1', 'a3b2', 'a3b3', 'a4b1','a4b2', 'a4b3',
'a5b1', 'a5b2', 'a5b3')
我怀疑这是重复的,但我搜索了 Stack Overflow
一个小时但没有成功。感谢您的任何建议。
使用 paste0
、rep
及其 each
参数,并依赖向量回收:
paste0("a", rep(1:5, each = 3), "b", 1:3)
#[1] "a1b1" "a1b2" "a1b3" "a2b1" "a2b2" "a2b3" "a3b1" "a3b2" "a3b3" "a4b1" "a4b2" "a4b3" "a5b1" "a5b2" "a5b3"
如果字符串中的模式比两个数字和两个字符更复杂,那么这里有一个替代解决方案可能更可行
concat <- function(x) paste0('a', x[, 2], 'b', x[, 1])
concat(expand.grid(1:3, 1:5))
#[1] "a1b1" "a1b2" "a1b3" "a2b1" "a2b2" "a2b3" "a3b1" "a3b2" "a3b3" "a4b1" "a4b2" "a4b3" "a5b1" "a5b2" "a5b3"