首页 > 解决方案 > 如何使用字符串组合创建数据框?

问题描述

我正在尝试创建一个数据框,该数据框由 R 中的字符串列表组合生成。例如,列表类似于

list <- c("liz", "doug", "stacy")

最终输出目标将是一个数据框,其中包含允许每个组合存在的行,例如:

 df <- as.data.frame(cbind(c("liz", "liz", "doug"), c("doug", "stacy", "stacy")))

我试图让每一对都是它自己的行,没有重复的组合。关于如何通过更大的字符列表实现这一目标的任何想法?

提前致谢。

标签: rcombinations

解决方案


expand.grid()将为您提供其向量参数的所有可能组合:

number_of_variables<-2

output<-expand.grid(data.frame(replicate(number_of_variables, list))

>output
     X1    X2
1   liz   liz
2  doug   liz
3 stacy   liz
4   liz  doug
5  doug  doug
6 stacy  doug
7   liz stacy
8  doug stacy
9 stacy stacy

将每个组合作为列调用transpose(output)

如果您想要独特的组合(丢弃具有相同元素的组合),请使用combn()

> data.frame(combn(list, number_of_variables))

    X1    X2    X3
1  liz   liz  doug
2 doug stacy stacy

推荐阅读