在R语言中如何正确合并向量的向量中的子向量?
解决向量的向量合并问题
首先要明确:你用c(c('a','b'), c('a','b'))构造的不是向量的向量,而是被c()扁平化后的普通向量,实际结果是c('a','b','a','b')。这就是为什么lapply会逐个处理每个单个元素,返回每个元素单独的列表项。
要实现你的需求,需要先正确构造包含子向量的列表,再用paste的collapse参数合并每个子向量的元素:
正确代码示例
# 正确构造包含子向量的列表 vec_list <- list(c('a','b'), c('a','b')) # 使用lapply结合paste合并每个子向量 result <- lapply(vec_list, function(x) paste(x, collapse = " "))
运行结果
[[1]] [1] "a b" [[2]] [1] "a b"
如果不想单独定义列表,也可以直接在lapply里传入正确的列表结构:
lapply(list(c('a','b'), c('a','b')), function(x) paste(x, collapse = " "))
内容的提问来源于stack exchange,提问作者Wytamma Wirth
相关产品推荐
相关产品推荐

