gpt4 book ai didi

r - 我如何将表转置为矩阵

转载 作者:行者123 更新时间:2023-12-04 20:42:33 24 4
gpt4 key购买 nike

我有一个数据框,如下所示:

n1    n2   freq  
A B 10
W Q 9
A E 23
A F 31
A W 9
B Q 25
B E 54
B F 33
B W 14
A Q 4
F E 1
E W 43
Q E 67
F W 10
Q F 6

如何将数据转置为这样的矩阵?
     A   B   E   F    W    Q 
A 1 10 23 31 9 4
B 10 1 54 33 14 25
E 23 54 1 1 43 67
F 31 33 1 1 10 6
W 9 14 43 10 1 9
Q 4 25 67 6 9 1
diag(data) <- 1

最佳答案

这是另一种方法。

假设您从 data.frame 开始名为“mydf”,您可以尝试:

## The "n" columns 
Cols <- c("n1", "n2")

## The factor levels
Levs <- sort(unique(unlist(mydf[Cols])))

## Applying the factor levels to all "n" columns
mydf[Cols] <- lapply(mydf[Cols], function(x) factor(x, Levs))

## xtabs is your friend
out <- xtabs(freq ~ n1 + n2, mydf)
out <- out + t(out)

## replace the diagonal
diag(out) <- 1
out
# n2
# n1 A B E F Q W
# A 1 10 23 31 4 9
# B 10 1 54 33 25 14
# E 23 54 1 1 67 43
# F 31 33 1 1 6 10
# Q 4 25 67 6 1 9
# W 9 14 43 10 9 1

关于r - 我如何将表转置为矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23487393/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com