我确定已经问过这个问题,但是我不确定要搜索什么术语。我想生成一个表/矩阵/数据框,以显示每个文件的该文件的md5sum是否等于其他所有文件的md5sum。下面的代码生成一些玩具数据和预期结果。由于此代码使用了for
循环,因此我将假定这不是最佳方法。
options(stringsAsFactors = FALSE)
name <- letters[1:9]
code <- c("1", "2", "2", "3", "4", "5", "2", "6", "6")
pairs <- data.frame(name = name, code = code)
for (i in 1:length(name)) {
for (j in 1:length(name)) {
if (i == 1 & j == 1) {
data <- setNames(
data.frame(
matrix(ncol = length(name), nrow = length(name)),
row.names = name
),
name
)
}
data[i, j] <- as.numeric(code[i] == code[j])
}
}
是否存在可以执行此分析的功能,或者是执行此操作的更好方法?
答案 0 :(得分:1)
尝试
data <- outer(code,code,function(x,y) ifelse(x==y,1,0))
rownames(data) <- name
colnames(data) <- name