【发布时间】:2019-09-06 22:01:27
【问题描述】:
我知道这个问题的答案很简单,但我已经广泛搜索了论坛,但我一直无法找到解决方案。
我有一个名为 Data_source 的列,这是我想要对变量进行分组的一个因素。
我有一系列symptom* 变量,我希望根据Data_source 进行计数。
由于某种原因,我无法弄清楚如何做到这一点。正常的group_by 函数似乎无法正常工作。
这是有问题的数据框
df <- wrapr::build_frame(
"Data_source" , "Sex" , "symptoms_decLOC", "symptoms_nausea_vomitting" |
"1" , "Female", NA_character_ , NA_character_ |
"1" , "Female", NA_character_ , NA_character_ |
"1" , "Female", "No" , NA_character_ |
"1" , "Female", "Yes" , "No" |
"1" , "Female", "Yes" , "No" |
"1" , "Female", "Yes" , "No" |
"1" , "Male" , "Yes" , "No" |
"1" , "Female", "Yes" , "No" |
"2" , "Female", NA_character_ , NA_character_ |
"2" , "Male" , NA_character_ , NA_character_ |
"2" , "Male" , NA_character_ , NA_character_ |
"2" , "Female", "Yes" , "No" |
"2" , "Female", "Yes" , "No" |
"2" , "Male" , NA_character_ , NA_character_ |
"2" , "Male" , NA_character_ , NA_character_ |
"2" , "Male" , NA_character_ , NA_character_ |
"2" , "Female", NA_character_ , NA_character_ |
"2" , "Female", NA_character_ , NA_character_ |
"2" , "Male" , NA_character_ , NA_character_ |
"2" , "Female", NA_character_ , NA_character_ )
请注意,性别和症状变量都是包括 NA 在内的所有因素。我尝试了以下方法
df %>% na.omit() %>% group_by(Data_source) %>% count("symptoms_decLOC")
这不起作用并且不是最佳的,因为我必须为每一列重复它。理想的情况是使用类似于lapply(df, count) 的东西,但这并没有为我提供每个组的描述。
编辑
针对以下问题,我添加了预期的输出。我在 excel 中对此进行了编辑,为清楚起见对group_by 进行了颜色编码。
请注意我是如何对每个可能的答案进行细分的。当我使用dplyr 运行它时,这是输出。
> df %>% na.omit() %>% group_by(Data_source) %>% count("symptoms_decLOC")
# A tibble: 2 x 3
# Groups: Data_source [2]
Data_source `"symptoms_decLOC"` n
<chr> <chr> <int>
1 1 symptoms_decLOC 5
2 2 symptoms_decLOC 2
【问题讨论】:
-
你想要的输出是什么?
-
感谢您的评论。我应该把它放在原来的问题中。我进行了编辑以进一步阐明我在寻找什么