gpt4 book ai didi

r - 模式匹配

转载 作者:行者123 更新时间:2023-12-02 06:55:32 25 4
gpt4 key购买 nike

ca.df

id    Category
1 Noun
2 Negative
3 Positive
4 adj
5 word

每个术语被分配到超过 1 个类别,因此,它对应超过 1 个 id。在 terms.df 中,所有 id 都在一列中。

条款.df

Terms   id
Love 1 4 5 3
Hate 2 4 5
ice 1 5

id在terms中对应ca.df中的category。我想要这样的输出:

x.df

Category      terms

Noun ice Love
Negative Hate
Positive Love
adj Hate Love
word ice Hate Love

如何做到这一点?

最佳答案

这是一个可能的 data.table/splitstackshape 包解决方案

library(splitstackshape) ## loads `data.table` package too
terms.df <- cSplit(terms.df, "id", sep = " ", direction = "long")
setkey(terms.df, id)[ca.df, .(Category , Terms = toString(Terms)), by = .EACHI]

# id Category Terms
# 1: 1 Noun Love, ice
# 2: 2 Negative Hate
# 3: 3 Positive Love
# 4: 4 adj Love, Hate
# 5: 5 word Love, Hate, ice

一些解释

  1. 我们先将id列按照Terms列进行空格分割
  2. 然后我们在 id 列的两个数据集之间执行二进制左连接
  3. 在连接时,我们根据每个连接使用 by = .EACHI 运算符连接 Terms 列,这允许我们执行加入时的不同操作

关于r - 模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31895684/

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