计算R数据框中特定字符串的列表

sr4lhrrt  于 2023-01-22  发布在  其他
关注(0)|答案(1)|浏览(109)

我有一个有5列的数据框,但我对其中一列“条件”感兴趣。在条件列中,我需要找到一种方法来计算单元格中特定条目的数量。每个列单元格可以有一个条目或多个条目,以**(,)**分隔。因此,我的数据框看起来如下所示

S.NO                   Conditions
11            Eye Color 
12            Sound of your voice
13            Certain disease,Size of a palm,Eye Color
16            Eye Color,Hair color
17            Hair color,Height
18            Sound of your voice,Height

我想计数所有的differnt条目/字符串一次。总计我有35个不同的字符串列表在条件列,我希望我的输出像这样。

输出

Eye color   Sound of your voice   Certain disease    Size of a palm    Hair color   Height
    3           2                      1                   1              2          2
vbkedwbf

vbkedwbf1#

由于我不知道数据的确切结构,我假设数据如下

数据

data <- tribble(
~Conditions, ~value,
'Eye color', '3',
'Sound of your voice', '2',
'Certain disease, Size of a palm, Eye color', '1,1,2',
'Eye color, Hair color', '2,2',
'Hair color, Height', '3,1',
'Sound of your voice, Height', '1,4'
)

对于上述数据,我们可以编写以下代码来获得预期结果
编号

library(tidyverse)

Conditions <- unlist(strsplit(data$Conditions,','))
value <- unlist(strsplit(data$value,','))

df <- bind_cols(Conditions,value) %>% mutate(Conditions=trimws(`...1`)) %>% 
arrange(Conditions) %>% group_by(Conditions) %>% mutate(row=row_number()) %>% 
pivot_wider(row,names_from = Conditions, values_from = `...2`)

输出

相关问题