我有以下數據幀 df < - data.frame(Class = c(「S1」,「S1」,「s2」,「s2」,「S3 S3「,」S3「),品牌= c(」B1「,」B2「,」B2「,」B3「,」B1「,」B2「,」B3「,」B4「 ))R-幫助創建矩陣以找到相似的值
我想計算兩個類之間的常見品牌並將輸出顯示爲矩陣。顯示輸出示例here
謝謝。
我有以下數據幀 df < - data.frame(Class = c(「S1」,「S1」,「s2」,「s2」,「S3 S3「,」S3「),品牌= c(」B1「,」B2「,」B2「,」B3「,」B1「,」B2「,」B3「,」B4「 ))R-幫助創建矩陣以找到相似的值
我想計算兩個類之間的常見品牌並將輸出顯示爲矩陣。顯示輸出示例here
謝謝。
我敢肯定有更優雅的解決方案,但是這給你想
該文件包含了品牌的唯一值列表中的結果,爲每個類。
my_list <- tapply(df$Class, df$Brand, unique)
共享品牌元素數的計數,即Class的交集。這存儲在矩陣中。
my_matrix <- do.call(what = cbind,
args = lapply(1:length(my_list), function(x){
lapply(1:length(my_list), function(y){
length(intersect(my_list[[x]], my_list[[y]]))
})
})
)
爲了清楚起見,可以命名結果矩陣。
colnames(my_matrix) <- unique(df$Class)
rownames(my_matrix) <- unique(df$Class)
您可能需要'table(df)' – akrun
您想「列出品牌」,但是在需要的輸出中,沒有品牌列表。請解釋一下,輸出是如何構建的。什麼是「上面給出的矩陣」? – Bernhard
我不希望品牌上市,而只是產品中常見品牌的數量。輸出附加在鏈接中。 (點擊'輸出')謝謝。 – pns123