【发布时间】:2014-10-26 02:43:12
【问题描述】:
我有以下数据框并希望:
(1) 构建一个 4x4 共现矩阵。
(2) 使用循环来运行它,因为我使用的是具有更多变量的更大数据集。
a <- rep(c("a", "a", "b", "c"), 4)
b <- rep(c("b", "c", "d", "d"), 4)
df <- data.frame(a,b)
out <- matrix(0,
nrow = 4, # how do I call just the levels?
ncol = 4)
out
以下代码不起作用,但可能有助于有人帮助我解决这个问题。
for (i in 1:nrow(df)) {
ind <- which(lvls == df[i, "a"])
out[i, ind] <- 1
}
out
# loop over variables in b
for (j in 1:nrow(df)) {
ind <- which(lvls == df[j, "b"])
out[j, ind] <- 1
}
out
这是我希望的输出......
[a] [b] [c] [d]
[a] 0 4 4 0
[b] 4 0 0 4
[c] 4 0 0 4
[d] 0 4 4 0
任何帮助都会很棒。提前致谢!
【问题讨论】:
-
请同时发布您的示例中所需的结果
-
@bpace 在提供的示例中,没有
a和d行,b和c相同。我不明白你是如何得到4的。检查table(as.character(interaction(df, sep="")))的输出 -
谢谢,@akrun ... 已修复。