R中成对评估矩阵的值数组
Array of values to matrix of pairwise evaluations in R
我正在尝试将数组转换为矩阵,其中矩阵单元格值评估每个成对值是相同还是不同。
例如:我希望转换这样的数组:
df = data.frame(m1=c("Apple", "1", "2"), m2=c("Apple", "3", "4"), m3=c("Plum", "5", "6"))
array = df[1,]
到这样的矩阵:
m1 m2 m3
m1 T
m2 T T
m3 F F T
其中 "T" 表示两个值相等(即第一个条目和第二个条目都等于 "apple")并且 "F" 表示它们不同。
谢谢!
您可以在这里使用 apply
和 upper.tri
m=apply(array,2,function(x) x==array)
m[upper.tri(m)] <- ''
m
m1 m2 m3
[1,] "TRUE" "" ""
[2,] "TRUE" "TRUE" ""
[3,] "FALSE" "FALSE" "TRUE"
我正在尝试将数组转换为矩阵,其中矩阵单元格值评估每个成对值是相同还是不同。
例如:我希望转换这样的数组:
df = data.frame(m1=c("Apple", "1", "2"), m2=c("Apple", "3", "4"), m3=c("Plum", "5", "6"))
array = df[1,]
到这样的矩阵:
m1 m2 m3
m1 T
m2 T T
m3 F F T
其中 "T" 表示两个值相等(即第一个条目和第二个条目都等于 "apple")并且 "F" 表示它们不同。
谢谢!
您可以在这里使用 apply
和 upper.tri
m=apply(array,2,function(x) x==array)
m[upper.tri(m)] <- ''
m
m1 m2 m3
[1,] "TRUE" "" ""
[2,] "TRUE" "TRUE" ""
[3,] "FALSE" "FALSE" "TRUE"