我有一部分数据集,如下所示,以csv的形式显示,行数和列数多于显示的数量。我想在这个数据集上实现apriori,说我有这个: -
Maths Science C++ Java DC
[1] 75 44 55 56 88
[2] 56 88 54 78 44
原始数据集的总列数(代表主题)= 30,序列号(代表学生)= 24,
数据集:link
我想以下面显示的形式转换此数据集: -
[1] {Maths,DC}
[2] {Science,Java}
即包含列名的列表列表(我认为这就是所谓的名称)。学生列表显示他/她得分大于或等于75分的主题,其余科目被删除(问题的唯一条件)
eq: - 第一名学生在Dc和数学方面得分超过75分,所以他的名单只包括直流和数学。
我很抱歉发布这个,但我在堆栈上搜索了很多,并找到了一些工作建议,但无法达到最终目标。 我的目标是获得这样的表格: -
[9834] {semi-finished bread,
bottled water,
soda,
bottled beer}
[9835] {chicken,
tropical fruit,
other vegetables,
vinegar,
shopping bags}
如下所示: -
library(arules)
inspect(Groceries)
或者我会感到欣慰,如果任何人都可以建议表达APRIORI能够理解的其他形式的数据,但是它应该遵循所规定的必要条件。
*(对不起,我希望以这种格式转换我的数据集可以帮助我研究学生主题数据集中的模式,对于所有帮助都是如此)
答案 0 :(得分:1)
library(plyr)
library(arules)
df <- read.table(text =
" 75 44 55 56 88
56 88 54 78 44")
names(df) <- c("Maths", "Science", "C++", "Java", "DC")
transactions <- as(alply(df, 1, function(x) names(x)[x >= 75]), "transactions")
inspect(transactions)
# items transactionID
# [1] {DC,Maths} 1
# [2] {Java,Science} 2
编辑:它也适用于您的示例数据集:
library(plyr)
library(arules)
df <- read.csv(file = url("https://drive.google.com/uc?export=download&id=0B3kdblyHw4qLR0dpT24xWUZGcGs"))
transactions <- as(alply(df, 1, function(x) names(x)[x >= 75]), "transactions")
inspect(transactions)
# items transactionID
# [1] {CD,CG,CN,DA,Data.Struc} 1
# [2] {CD,CG,CO,ML,OS} 2
# [3] {CN,Data.Struc,DC,DM,DMS} 3
# [4] {CHE,DD,DM,EC,EE} 4
# [5] {CHE,CN,MATHS,PHY} 5
# [6] {Data.Science,DM,DMS,ML,OS} 6
# [7] {CD,DA,Data.Struc,EC,MATHS} 7
# [8] {CG,CHE,CN,CO,OS} 8
# [9] {CN,CO,Data.Science,DC,DMS} 9
# [10] {DC,DD,EC,EE,PHY} 10
# [11] {CHE,DD,DMS,MATHS,PHY} 11
# [12] {CN,Data.Science,DM,MATHS,ML} 12
# [13] {CD,CG,DA,Data.Science,Data.Struc} 13
# [14] {CG,CO,EE,MATHS,OS} 14
# [15] {CN,CO,DC,DMS,PHY} 15
# [16] {CN,CO,DD,EC,EE} 16
# [17] {CHE,DA,EE,MATHS,PHY} 17
# [18] {Data.Science,DD,DM,ML,PHY} 18
# [19] {CD,CO,DA,Data.Struc,DC} 19
# [20] {CG,CO,DD,DM,OS} 20
# [21] {CG,CN,DA,DC,DMS} 21
# [22] {DD,EC,EE,ML,OS} 22
# [23] {CHE,CN,Data.Struc,MATHS,PHY} 23
# [24] {CG,Data.Science,DM,EE,ML} 24