【发布时间】:2017-12-30 13:46:24
【问题描述】:
我有一个如下形式的数据框
Id <- c(101,102,103,101,103,103,102,101,103,102)
Service <- c('A','B','A','C','A','A','B','C','A','B')
Type <- c('C','I','C','I','C','C','C','I','I','C')
Channel <- c('ATM1','ATM2','ATM1','Teller','Teller','ATM2','ATM1','ATM1','ATM2','Teller')
amount <- c(11,34,56,37,65,83,26,94,34,55)
df <- data.frame(Id,Service,Channel,Type,amount)
表格格式的df
Id Service Channel Type amount
101 A ATM1 C 11
102 B ATM2 I 34
103 A ATM1 C 56
101 C Teller I 37
103 A Teller C 65
103 A ATM2 C 83
102 B ATM1 C 26
101 C ATM1 I 94
103 A ATM2 I 34
102 B Teller C 55
我可以使用amount 列作为df %>% group_by(Id) %>% summarise(total = sum(amount)) %>% as.data.frame 来总结我的数据
Id total
101 142
102 115
103 238
如何使用分类列(服务/类型/通道)和group_by(Id) 以类似的方式汇总数据?我知道我们可以在这里使用table(),但我正在尝试创建一个数据框,我可以将其用于进一步分析,例如聚类。
【问题讨论】:
-
您要查找的是
group_by(id, Service, Type, Channel)还是您的问题更复杂? -
@PoGibas 是的,我已经尝试过了,对每个分类变量进行分组,然后查看每个
customer Id花费的金额,但它没有用。我的目标是稍后运行聚类分析以根据 Id 查找客户群。我只是不知道我们可以对我的数据集上的分类特征进行什么类型的聚合。我只是不知道在这种情况下如何进行。这里也是原始问题链接datascience.stackexchange.com/questions/26124/… -
请发布您想要的输出,因为不清楚您在寻找什么。如果问题是什么是聚类分析的好格式,那么 SO 可能不是搜索答案的最佳位置。
-
实际的问题没有任何意义。 OP 不清楚究竟应该输出什么。
-
请注意,聚类分析是否是使用此数据的正确技术超出了此问题的范围,因为该问题在Data Science SO Community 上得到了更好的解决。
标签: r dplyr data-manipulation