我有一个数据集如下所示。每个产品(P *)具有某个特征(F *)开/关(1/0)。我不能很好地格式化表格。
Product F1 F2 F3 F4 ....
P1 1 0 1 1
P2 0 1 1 0
P3 1 0 1 1
P4 0 0 0 1
..
..
Total 2 1 3 3
我有两个问题。一个与创建如下所述的摘要有关,下一个是可视化此数据。
1)总结: 鉴于此数据集,我想获得On(1)的每个功能组合的产品总和。例如:
F1,F3,F4 = 2 i.e F1,F3,F4 are present in 2 products P1,P3.
F3,F4 = 2 i.e F3, F4 are present in 2 products P1,P3
F1, F2 = 2
F1, F4 = 2
在我的实际数据集中,功能数量约为200,产品数量为10k +。为了优化计算,我不介意为具有特定功能的产品百分比提供阈值。我的意思是,从给出的例子来看,假设我的阈值是50%,并且有4个产品,所以任何打开超过50%的特征即2被认为是分组,在这种情况下它将功能F1,F3,F4。不考虑F1,因为其列总和<&lt; 2。
2)可视化: 我想在条形图中可视化这个结果。请随意提出是否有更好的方法可视化。
我的方法:我是R和统计学的新手,但精通C#。
我正在学习编写此代码,因此尚无共享的代码示例。
我认为考虑到我的数据集的维度,我的方法在计算上是昂贵的,并且相信可能有更好的方法来实现这一点。提前感谢您的努力。
答案 0 :(得分:1)
让您了解如何形象化。
# reading your example data
df <- read.table(text="Product F1 F2 F3 F4
P1 1 0 1 1
P2 0 1 1 0
P3 1 0 1 1
P4 0 0 0 1", header=TRUE, strip.white=TRUE)
# reshape the data from wide to long format
require(reshape2)
df2 <- melt(df, id="Product")
# creating a barplot
require(ggplot2)
ggplot(df2, aes(x=Product, y=value, fill=variable)) +
geom_bar(stat="identity")
给出: