![](/img/trans.png)
[英]How to plot multiple histograms at once of specific columns within dataset R
[英]How to compare multiple columns within a dataset in R?
我的數據集是這樣的..它具有比這更多的行和列:
x1 x2 x3 x4
part 1 1 1 1 1
part 2 0 1 1 0
part 3 0 0 0 1
part 4 1 0 1 1
part 5 1 1 1 1
我想比較各種組合中的列(x1 x2,x1 x3,x1 x4,x1 x2 x3,x1 x2 x4,x1 x3 x4,x2 x3 x4,x1 x2 x3 x4)以找到最大的通用零件數。
我可以使用combn獲取列的各種組合,但是我不知道如何比較各種列。 all.equal需要2個不同的數據集,在這里我想比較單個數據集中的各個列。 我是初學者。請給我建議。 提前致謝!!
一種方法可能是使用outer
。 在此,定義了一個輔助函數comp_cols
,該函數接受兩個列名稱向量,並計算dat
列是否相等。
# slightly modified data.frame from question
dat <- data.frame(x1=c(1,0,0,1,1), x2=c(1,1,0,0,1), x3=c(1,1,0,1,1), x4=c(1,0,0,1,1))
# compare function
comp_cols <- function(x,y) {
ans <- rep(NA, length(x))
for (i in seq_along(x)) ans[i] <- all(dat[,x[i]]==dat[,y[i]])
return(ans)
}
# compare each combination
res <- outer(colnames(dat), colnames(dat), FUN=comp_cols)
rownames(res) <- colnames(dat)
colnames(res) <- colnames(dat)
這可能不是最有效的解決方案,因為結果矩陣是對稱的,因此只需要一半的計算。 如果計算時間成為問題,則使用combn
可能會更快。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.