R:使用dplyr或Reforme2包制作数据透视表

R:使用dplyr或Reforme2包制作数据透视表,r,dplyr,reshape,reshape2,R,Dplyr,Reshape,Reshape2,我正在尝试使用dplyr或restrape2包在R中创建简单的透视表,因为我的数据集太大,并且R使用sqldf内存不足。我想用数据集中的两列创建透视表,它们分别是的“Product”和的“Cust\u Id”。我想统计每个产品的客户数量。这就是我得到的 library(reshape2) mydata<-read.table("Book1.txt",header=TRUE,fill=TRUE) mydata.m<-melt(mydata,id=c("Product"),measure

我正在尝试使用
dplyr
restrape2
包在R中创建简单的透视表,因为我的数据集太大,并且R使用
sqldf
内存不足。我想用数据集中的两列创建透视表,它们分别是
的“Product”
的“Cust\u Id”
。我想统计每个产品的客户数量。这就是我得到的

library(reshape2)
mydata<-read.table("Book1.txt",header=TRUE,fill=TRUE)
mydata.m<-melt(mydata,id=c("Product"),measured=c(Cust_Id))
mydata.d<-dcast(mydata.m,Product~variable,count)
我也用下面的代码尝试了
dplyr
(不确定最后一步是什么,因为我在另一台笔记本电脑上做了)

库(dplyr)
mydata.df试试这个:

library(dplyr)
mydata <- mydata %>%
  group_by(Product) %>%
  summarise(nCustomers = n())
库(dplyr)
mydata%
组别(产品)%>%
总结(n客户=n()
或者,如果您只想统计唯一客户,您可以执行以下操作:

library(dplyr)
mydata <- mydata %>%
  group_by(Product) %>%
  summarise(nCustomers = n_distinct(Cust_Id))
库(dplyr)
mydata%
组别(产品)%>%
摘要(客户=不相同(客户Id))

如果这真的是一个大数据集,那么您在
data.table
包中的最佳选择

require(data.table)

mydata_data_table = data.table(mydata)

number_customer = mydata_data_table[, .(number_customers = .N), by=Product]
您能否将部分数据dput()并分享一个您正在寻找的结果示例?
library(dplyr)
mydata <- mydata %>%
  group_by(Product) %>%
  summarise(nCustomers = n_distinct(Cust_Id))
require(data.table)

mydata_data_table = data.table(mydata)

number_customer = mydata_data_table[, .(number_customers = .N), by=Product]