R如果一列满足某个条件,则复制整个角色
我不知道如何解决这个问题。我的数据框看起来像这样,但要大得多:R如果一列满足某个条件,则复制整个角色,r,R,我不知道如何解决这个问题。我的数据框看起来像这样,但要大得多: 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
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
正如我所说的,数据帧要大得多,所以我不能手动操作。
谢谢 tidyr::单独的_行正好适用于这种情况
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
图书馆三年
df%>%单独的行日期,sep=''
>一个tibble:10x3
>字码模态
>
>1字1齿
>2字2 emo
>3字3 2 soc
>4字4 2齿轮
>5个单词4个2 emo
>6字5 1 soc
>7字6 1 soc
>8字6 1表情符号
>9字6 1齿轮
>10字7.2 emo
由v2.0.0于2021年6月11日创建的tidyr::separate_行正好适用于此场景
图书馆三年
df%>%单独的行日期,sep=''
>一个tibble:10x3
>字码模态
>
>1字1齿
>2字2 emo
>3字3 2 soc
>4字4 2齿轮
>5个单词4个2 emo
>6字5 1 soc
>7字6 1 soc
>8字6 1表情符号
>9字6 1齿轮
>10字7.2 emo
由v2.0.0于2021年6月11日创建,这里有一个data.table选项
这里有一个data.table选项
强大的分离行!强大的分离行!
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
> 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