r - 如何使用字符串组合创建数据框?
问题描述
我正在尝试创建一个数据框,该数据框由 R 中的字符串列表组合生成。例如,列表类似于
list <- c("liz", "doug", "stacy")
最终输出目标将是一个数据框,其中包含允许每个组合存在的行,例如:
df <- as.data.frame(cbind(c("liz", "liz", "doug"), c("doug", "stacy", "stacy")))
我试图让每一对都是它自己的行,没有重复的组合。关于如何通过更大的字符列表实现这一目标的任何想法?
提前致谢。
解决方案
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
推荐阅读
- r - 如何在 R 中求解非线性方程
- docker - 从 ansible docker_container 到 community.general.docker_container 的变化
- python - 获取连续第一个空单元格值
- python - 尝试返回包含子字符串 python 的所有嵌套 json 字典值
- python - 如何修复不收听/接受信息的 python 套接字?
- python - 在 Python 中为多键字典赋值?
- amazon-web-services - terraform:aws_route_table_association 错误
- php - 如何在刀片中创建带有条件的循环
- django - 如何在 Django 中将不带时区的日期类型时间戳更改为带时区的时间戳
- dbt - 使用本地包编译 dbt 时出错