首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我有多个带有"x“和NAs的列时,如何引用我的数据?

当我有多个带有"x“和NAs的列时,如何引用我的数据?
EN

Stack Overflow用户
提问于 2020-04-19 22:32:59
回答 1查看 39关注 0票数 0

我的数据如下所示:

代码语言:javascript
复制
df <- data.frame("Name"=c("A", "B", "C", "D", "E", "F"), 
                 "SM1"=c(NA, NA, "x", NA, "x", "x"), 
                 "SM2"=c("x", NA, NA, "x", "x", NA),
                 "SM3"=c("x", "x", "x", NA, NA, NA),
                 "Gender"=c("female", "male","male","male","female","female")
                 )

在这个例子中,我让几个人使用不同的超市,其中"x“表示每个人使用哪个超市。这些人中的每一个都有其他属性,比如“性别”等。

我想将这些属性与使用ggplot2的每个超市的堆叠条形图进行比较,比如每个超市有多少女性和男性顾客。

我的问题是,我没有一个单独的列告诉我使用哪个超市,因为每个人都可以使用每种超市组合,因此我不知道如何参考我的数据来绘制它。我该怎么做呢?

干杯!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-19 23:02:27

这就是你要找的东西吗?

代码语言:javascript
复制
library(dplyr)
library(tidyr)
library(stringr)
library(ggplot2)

df <- data.frame("Name"=c("A", "B", "C", "D", "E", "F"), 
                 "SM1"=c(NA, NA, "x", NA, "x", "x"), 
                 "SM2"=c("x", NA, NA, "x", "x", NA),
                 "SM3"=c("x", "x", "x", NA, NA, NA),
                 "Gender"=c("female", "male","male","male","female","female"), 
                 stringsAsFactors = FALSE) %>% 
  pivot_longer(cols = SM1:SM3, names_to = "sm", values_to = "gen") %>% 
  mutate(gen = case_when(gen == "x" ~ Gender,
                         TRUE ~ NA_character_)) %>% 
  group_by(sm, gen) %>% 
  summarise(count = n()) %>% 
  na.omit()


ggplot(df, aes(sm, count, fill = gen)) +
  geom_bar(stat = "identity")

这为您提供了:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61306042

复制
相关文章

相似问题

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