首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果某一列符合某一标准,r将复制整个角色。

如果某一列符合某一标准,r将复制整个角色。
EN

Stack Overflow用户
提问于 2021-06-11 07:28:47
回答 2查看 32关注 0票数 1

我不知道如何解决这个问题。我的数据文件看起来像这样(但要大得多):

代码语言:javascript
复制
df <- data.frame(word = c('word1','word2', 'word3', 'word4', 'word5', 'word6', 'word7'), code = c(1 , 2, 2, 2, 1, 1, 2), modality = c('cog', 'emo', 'soc', 'cog_emo', 'soc', 'soc_emo_cog', 'emo'))
df
   word code    modality
1 word1    1         cog
2 word2    2         emo
3 word3    2         soc
4 word4    2     cog_emo
5 word5    1         soc
6 word6    1 soc_emo_cog
7 word7    2         emo

情态列显示该词被指定给哪个情态。但我需要数一数分配给一种方式的单词数。如果一个词被分配给多个模式,那么每个单词都必须被计算。因此,我希望重复分配多个模式的整个行,以便每行有一个模式。有点像这样:

代码语言:javascript
复制
    word code modality
1  word1    1      cog
2  word2    2      emo
3  word3    2      soc
4  word4    2      cog
5  word4    2      emo
6  word5    1      soc
7  word6    1      soc
8  word6    1      emo
9  word6    1      cog
10 word7    2      emo

正如我所说的,数据框架要大得多,所以我不能手动完成。谢谢你!!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-11 07:36:17

代码语言:javascript
复制
library(tidyverse)

df %>% mutate(modality = str_split(modality, "_")) %>% unnest(modality)

   word   code modality
   <fct> <dbl> <chr>   
 1 word1     1 cog     
 2 word2     2 emo     
 3 word3     2 soc     
 4 word4     2 cog     
 5 word4     2 emo     
 6 word5     1 soc     
 7 word6     1 soc     
 8 word6     1 emo     
 9 word6     1 cog     
10 word7     2 emo  
票数 3
EN

Stack Overflow用户

发布于 2021-06-11 08:51:55

这里有一个data.table选项

代码语言:javascript
复制
> setDT(df)[,.(modality = unlist(strsplit(modality,"_"))),.(word,code)]
     word code modality
 1: word1    1      cog
 2: word2    2      emo
 3: word3    2      soc
 4: word4    2      cog
 5: word4    2      emo
 6: word5    1      soc
 7: word6    1      soc
 8: word6    1      emo
 9: word6    1      cog
10: word7    2      emo
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67932908

复制
相关文章

相似问题

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