gpt4 book ai didi

r - 从 group1、group2、overlap_count 创建重叠矩阵?

转载 作者:行者123 更新时间:2023-12-04 00:15:52 28 4
gpt4 key购买 nike

我有一个数据框,其中 g1、g2 代表两个组,还有一个 val 列,代表 g1 中有多少项目也可以在 g2 中找到。

## Input dataframe
data.frame(
g1 = c('a','a','a','b','b','b','c','c','c','d'),
g2 = c('a','b','c','a','b','c','a','b','c','d'),
val = c(10,4,1,4,5,0,1,0,3,4),
stringsAsFactors = FALSE
)

我在格式化数据框时遇到问题,如下所示。我可以创建一个空的命名矩阵,其具有来自 g1/g2 的不同列/行名称,并遍历输入数据帧中的每一行,将其值写入匹配的 g1:row-id g2:column-id 组合,但这似乎效率低下;我想知道是否有任何库提供了自动化它的方法?

## Output overlap matrix
data.frame(a = c(10,4,1,0),
b = c(4,5,0,0),
c = c(1,0,3,0),
d = c(0,0,0,4),
row.names = c('a','b','c','d'))

overlap between groups 类似的问题之前有人问过,但是我们有一个组列表和其中的项目,并且想要找出组之间有多少项目重叠。

在这里,我知道组之间有多少项目重叠,但无法以正确的方式格式化。

最佳答案

这类似于 How to reshape data from long to wide format略有不同的是,id 列应保留为行名。为此,我们可以使用 reshape2::acast

reshape2::acast(Input_dataframe, formula = g1 ~ g2, fill = 0)

# > a b c d
# > a 10 4 1 0
# > b 4 5 0 0
# > c 1 0 3 0
# > d 0 0 0 4

关于r - 从 group1、group2、overlap_count 创建重叠矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63817465/

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