这是一个简单的向量:
vec <- c('foo', 'bar', 'baz');
Run Code Online (Sandbox Code Playgroud)
我想补充的后缀_X,并_Y以该向量的每个元素,让我得到一个向量与六大要素:c('foo_X', 'foo_Y', 'bar_X', 'bar_Y', 'baz_X', 'baz_Y')。
我希望我可以做到sapply:
sapply(vec, function(elem) {
c(paste0(elem, '_X'),
paste0(elem, '_Y'))
});
Run Code Online (Sandbox Code Playgroud)
但是,这将返回矩阵而不是向量:
foo bar baz
[1,] "foo_X" "bar_X" "baz_X"
[2,] "foo_Y" "bar_Y" "baz_Y"
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能创建想要的载体?
使用outer与paste0
vec <- c('foo', 'bar', 'baz')
suffix <- c("_X", "_Y")
c(outer(vec, suffix, paste0))
#[1] "foo_X" "bar_X" "baz_X" "foo_Y" "bar_Y" "baz_Y"
Run Code Online (Sandbox Code Playgroud)