我试图将一列数据格式化为许多二进制列,最终用于关联规则挖掘.我使用for循环和一个简单的三元组矩阵取得了一些成功,但我不确定如何按照之后第一列中的级别进行聚合 - 类似于SQL中的group by语句.我在下面提供了一个示例,尽管数据集要小得多 - 如果成功,我的实际数据集将是4,200行乘3,902列,因此任何解决方案都需要可扩展.任何建议或替代方法将不胜感激!
> data <- data.frame(a=c('sally','george','andy','sue','sue','sally','george'), b=c('green','yellow','green','yellow','purple','brown','purple'))
> data
a b
1 sally green
2 george yellow
3 andy green
4 sue yellow
5 sue purple
6 sally brown
7 george purple
x <- data[,1]
for(i in as.numeric(2:ncol(data)))
x <- cbind(x, simple_triplet_matrix(i=1:nrow(data), j=as.numeric(data[,i]),
v = rep(1,nrow(data)), dimnames = list(NULL, levels(data[,i]))) )
##Looks like this:
> as.matrix(x)
name brown green purple yellow
[1,] "sally" "0" "1" "0" "0"
[2,] "george" "0" "0" "0" "1"
[3,] …Run Code Online (Sandbox Code Playgroud) 我试图将列转换为R中的行,而不使用reshape(无法安装包).我收到的数据包括属性及其相应的指标.我想计算所有这些属性之间的统计相关性 - 总共16000个,有800万条记录.并非所有记录都具有相同数量的属性.
为此,我相信我必须将列转换为行,以便最终可以使用cor函数,例如cor(x [,1],x [,2:16000]).如果有某种方法可以通过属性使用cor函数,即属性1和2,属性1和3,属性1 ... N之间的相关性,这可能完全没有必要.任何帮助都将非常感激.
ID Attribute Metric1
[1,] 1 1 -1.6363007
[2,] 2 1 1.1483294
[3,] 3 1 2.1682566
[4,] 4 1 -1.1823649
[5,] 5 1 -1.3631378
[6,] 1 2 -1.1715544
[7,] 2 2 1.5164278
[8,] 3 2 -1.0110274
[9,] 4 2 -0.9421652
[10,] 5 2 -0.2105443
[11,] 6 2 -0.4143548
[12,] 7 2 -1.6170975
[13,] 8 2 1.2402303
[14,] 9 2 0.4460047
[15,] 7 3 0.1060407
[16,] 8 3 0.9796893
[17,] 9 3 0.9254911
[18,] …Run Code Online (Sandbox Code Playgroud)