gpt4 book ai didi

r - R中数据之间的链接

转载 作者:行者123 更新时间:2023-12-03 22:52:17 24 4
gpt4 key购买 nike

我有一个这种形式的数据框:

        C1    C2   C3 support
1 {A} {B} <NA> 1.00
2 {D} {A} <NA> 0.50
3 {F} {A} <NA> 0.30
4 {D} {F} {A} 0.75
5 {B,F} {A} <NA> 0.50
6 {D} {B,F} {A} 0.25

我想将上面的 data.frame 转换为以下内容:

      FROM    TO      support
1 {A} {B} 1.00
2 {D} {A} 0.50
3 {F} {A} 0.30
4 {D} {F} 0.75
5 {F} {A} 0.75
6 {B,F} {A} 0.50
7 {D} {B,F} 0.25
8 {B,F} {A} 0.25

这是 (`C1``C2`) 和 (`C2``C3` 之间的每个链接).
提前谢谢你。

最佳答案

一个选项是rbind 具有第 2 到第 4 列的数据集子集(基于第三列中的非 NA 值)到没有第 3 列的完整数据集,将其放置在 list 中并使用 rbindlist(来自 data.table)对 list 的元素进行行绑定(bind)。如果需要,我们可以使用 setnames 更改列名。

library(data.table)
setnames(rbindlist(list(df[, c(1,2,4)], df[!is.na(df[,3]), 2:4])),
1:2, c("FROM", "TO"))[]
# FROM TO support
#1: {A} {B} 1.00
#2: {D} {A} 0.50
#3: {F} {A} 0.30
#4: {D} {F} 0.75
#5: {B,F} {A} 0.50
#6: {D} {B,F} 0.25
#7: {F} {A} 0.75
#8: {B,F} {A} 0.25

数据

df <- structure(list(`1` = c("{A}", "{D}", "{F}", "{D}", "{B,F}", "{D}"
), `2` = c("{B}", "{A}", "{A}", "{F}", "{A}", "{B,F}"), `3` = c(NA,
NA, NA, "{A}", NA, "{A}"), support = c(1, 0.5, 0.3, 0.75, 0.5,
0.25)), .Names = c("1", "2", "3", "support"), class = "data.frame",
row.names = c(NA, -6L))

关于r - R中数据之间的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38347044/

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