如何用R的lapply为字符串列表生成唯一两两配对向量
R 语言字符串列表生成两两不重复组合的简洁实现
你可以直接利用combn()的FUN参数搭配lapply()实现,完全不需要嵌套循环,最简实现代码如下:
studentGroupTest <- lapply(studentGroup, combn, m = 2, paste, collapse = " & ")
代码说明
lapply()遍历studentGroup的每个子向量,自动生成对应长度的结果列表,无需手动初始化combn()生成子向量的2元素无序组合时,直接通过FUN参数调用paste(),用collapse = " & "把每组两个字符串拼接成要求的格式,不需要额外转数据框、遍历列的操作
运行上述代码得到的输出和你给出的预期效果完全一致。
如果后续需要扩展拼接逻辑,也可以写完整的匿名函数形式,可读性更高:
studentGroupTest <- lapply(studentGroup, function(group_vec) { combn(group_vec, m = 2, FUN = function(pair) { paste(pair[1], "&", pair[2]) }) })
内容的提问来源于stack exchange,提问作者rifset
相关产品推荐
相关产品推荐

