gpt4 book ai didi

r - 如何将 "unmelt"数据帧转换为矩阵?

转载 作者:行者123 更新时间:2023-12-01 22:56:42 33 4
gpt4 key购买 nike

我有一个数据框

sources <- c("a", "b", "c", "a", "a", "b")
targets <- c("f", "v", "w", "a", "b", "c")
values <- c(12, 34, 56, 3, 76, 35)
df <- data.frame(sources, targets, values)

sources targets values
1 a f 12
2 b v 34
3 c w 56
4 a a 3
5 a b 76
6 b c 35

如何 reshape 它以获得一个矩阵,其中源作为行名,目标作为列名,相交单元格中有相应的值?在这种情况下,我应该有一个 3 x 6 矩阵。像这样:

    f  v  w  a  b  c
a 12 0 0 3 76 0
b 0 34 0 0 0 35
c 0 0 56 0 0 0

最佳答案

你可以使用 xtabs():

xtabs(values ~ sources + targets, df)

# a b c f v w
# a 3 76 0 12 0 0
# b 0 0 35 0 34 0
# c 0 0 0 0 0 56

如果您希望输出为 data.frame,只需将其传递给 as.data.frame.matrix()

关于r - 如何将 "unmelt"数据帧转换为矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73030235/

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