之前没有用R写过什么脚本,这次需要使用R读取一份数据并且输出一个与行数相同的方阵,这份数据包含3000多行和8列,第2到第8列存在NA。
需要做的处理是:
如果两个不同行对应的列值(忽略第1列)组成的集合存在交集,那么就将输出矩阵的对应位置置为1,;否则,置为0.
data <- read.csv("data.csv")
size <- nrow(data)
relation_matrix <- matrix(0, size, size)
for (i in 1:size)
for (j in 1:size) {
set1 = data[i, -1][!is.na(data[i, -1])]
set2 = data[j, -1][!is.na(data[j, -1])]
if (i != j && length(intersect(set1, set2)) > 0)
relation_matrix[i, j] = 1
}
write.csv(relation_matrix, "data_result.csv")
程序逻辑比较简单,还请大家帮忙看看,使这个程序能在更快的速度跑出数据,谢谢!