首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何根据R中列中存在的多个值复制行

如何根据R中列中存在的多个值复制行
EN

Stack Overflow用户
提问于 2020-10-24 07:52:49
回答 1查看 75关注 0票数 0

我有一个语音转录的数据,叫做trans,还有一个列pos_num,它记录音素t在转录字符串中的位置。

代码语言:javascript
运行
复制
df <- data.frame(
  trans = c("ðət", "əˈpærəntli", "ˈkɒntrækt", "təˈwɔːdz", "pəˈteɪtəʊz"), stringsAsFactors = F
)
df$pos_num <- sapply(strsplit(df$trans, ""), function(x) which(grepl("t", x)))

df
       trans pos_num
1        ðət       3
2 əˈpærəntli       8
3  ˈkɒntrækt    5, 9
4   təˈwɔːdz       1
5 pəˈteɪtəʊz    4, 7

在某些转录中,t不止一次发生,导致pos_num中存在多个值。在这种情况下,我想复制整个行,原始行包含一个值,重复行包含另一个值。预期的产出将是:

代码语言:javascript
运行
复制
df
       trans pos_num
1        ðət       3
2 əˈpærəntli       8
3  ˈkɒntrækt       5
4  ˈkɒntrækt       9
5   təˈwɔːdz       1
6 pəˈteɪtəʊz       4
7 pəˈteɪtəʊz       7

如何才能做到这一点?(对于其他编程语言,似乎有一些关于这个问题的帖子,但没有R)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-24 08:06:45

代码语言:javascript
运行
复制
library(data.table)
setDT(df)
df[, .(pos_num = unlist((pos_num))),by = .(trans)]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64511184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档