Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在组合被指定为多行的情况下,如何查找组合的频率?_R_Combinations - Fatal编程技术网

R 在组合被指定为多行的情况下,如何查找组合的频率?

R 在组合被指定为多行的情况下,如何查找组合的频率?,r,combinations,R,Combinations,我正在查看位置数据,我有一份我知道具体位置和时间的个人名单。我想了解的是,在任何一天中,最常见的地点组合是什么 id location date 00231 home 2014-01-02 00231 gas station 2014-01-02 00231 home 2014-01-02 02830 work 2014-01-02 02830 home 2014-01-02 00231 home

我正在查看位置数据,我有一份我知道具体位置和时间的个人名单。我想了解的是,在任何一天中,最常见的地点组合是什么

id      location    date
00231   home        2014-01-02
00231   gas station 2014-01-02
00231   home        2014-01-02
02830   work        2014-01-02
02830   home        2014-01-02
00231   home        2014-01-04
00231   mcdonalds   2014-01-04
正如您所看到的,可能有许多人的位置组长度不同。我如何使用R来找到所有潜在组合的频率(对于“顺序重要”和“顺序不重要”)。以下是我想看到的:

combination                  freq
home-gas station-home        472
work-home                    439
home-walmart-home            209
同样要澄清的是,我现在不需要对这些地点进行任何其他分析,只是寻找一个组合分析


如果这是重复的,谢谢并表示歉意,但我找不到任何组合位于多行的地方(与许多关于变量/列值组合的示例相比)

有很多方法-我认为robert让您概括一下是正确的

我觉得自己很大方,所以有一些生成的数据,比如table和ddply(它输出一个data.frame)


data1谢谢你,罗伯特。嗯,我在寻找不同长度的组合。我不想按
位置分组
,我正在寻找跨多行(不同数量)的
位置组
的分组。请仔细考虑这个问题,并将该技术推广到您的具体情况。谢谢@user1617979,我对
ddply
不是很熟悉,但当你有一个不同规模的团队时,这似乎并不能解决问题。也许我现在知道的还不够。我尝试使用
aggregate
函数尝试创建一个文本字符串
aggregate(mydata,by=list(id,date),c)
。。不幸的是,我的数据有300000多行,30分钟后操作仍然没有完成。这是不是用错了?对不起,我对聚合不太熟悉。但在某些情况下可能会很慢(添加option.progress=“text”至少提供了一个进度条)。此外,您还需要有summary选项,否则它会将数据添加到每一行。我最近做了数百万行,所以我知道它是有效的,但它也很慢(我在按太多级别分组时也有一个错误)。我继续搜索,找到了一些关于dddply替代品的好文章——祝你好运
data1 <- data.frame(value=1:100,group=factor(rep(1:4,25)))
table(data1$group)
ddply(data1,.(group),summarize,N=length(group))
ddply(data1,.(group),summarize,N=length(group),sum1=sum(value),mean1=mean(value))