首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >饼图3选项

饼图3选项
EN

Stack Overflow用户
提问于 2018-01-31 14:27:02
回答 3查看 124关注 0票数 1

在过去的一周里,我一直在试图自学,但我已经被一个饼图问题困扰了两天,我似乎无法理解它。

我有一个有几列的表。我想用其中的两个来创建一个饼图。第一个称为"Rabatt“,第二个称为"Gewinnspiel”,现在它们都可以be0表示False或1表示True,但这两行都不能在两列中都有True。所以组合可以是00,10或者01。现在我想要一个饼图,显示00、10或01的百分比。但我如何告诉R,当它们包含值1时,只显示两行中的百分比(因为当它们包含值0时,它们都是假的,并且不相关,直到它们都是假的),将这两行相加,然后还显示这两种情况的百分比?

我希望我的解释是可以理解的。

下面是数据的一部分(总共超过100行)。

代码语言:javascript
复制
Rabatt  Gewinnspiel
0       0
0       0
0       0
1       0
1       0
1       0
0       0
1       0
1       0
1       0
1       0
1       0
1       0
1       0
0       1
0       1
1       0
1       0
0       0
EN

回答 3

Stack Overflow用户

发布于 2018-01-31 14:31:56

下面是如何使用包dplyrtable函数完成此操作的示例

您的数据

代码语言:javascript
复制
  df = read.table(header = T, stringsAsFactors = F,  text  = "Rabatt  Gewinnspiel
0       0
0       0
0       0
1       0
1       0
1       0
0       0
1       0
1       0
1       0
1       0
1       0
1       0
1       0
0       1
0       1
1       0
1       0
0       0")

通过连接Rabatt和Gewinnspiel创建名为ny_var的新变量

代码语言:javascript
复制
df <- df %>% mutate(ny_var = paste(Rabatt, Gewinnspiel, sep = ""))

您可以将新变量绘制为饼图

代码语言:javascript
复制
pie(table(df$ny_var))

您可以查看您的汇总数据

代码语言:javascript
复制
table(df$ny_var)
票数 1
EN

Stack Overflow用户

发布于 2018-01-31 14:57:50

如果你不想在这个任务中使用额外的包,并且标签中也有你的%-numbers,试试这个( df是你的数据框):

代码语言:javascript
复制
df <- read.table(text = "Rabatt  Gewinnspiel
0       0
                 0       0
                 0       0
                 1       0
                 1       0
                 1       0
                 0       0
                 1       0
                 1       0
                 1       0
                 1       0
                 1       0
                 1       0
                 1       0
                 0       1
                 0       1
                 1       0
                 1       0
                 0       0", header = TRUE)

pie_tbl <- table(with(df, paste0(Rabatt, Gewinnspiel)))
pie(x = pie_tbl, labels = paste0(names(pie_tbl), ": ", round(pie_tbl/sum(pie_tbl)*100), "%"))
票数 0
EN

Stack Overflow用户

发布于 2018-01-31 14:57:50

以下是一种方法:

代码语言:javascript
复制
#data
df <- read.table(text = "Rabatt  Gewinnspiel
    0       0
                     0       0
                     0       0
                     1       0
                     1       0
                     1       0
                     0       0
                     1       0
                     1       0
                     1       0
                     1       0
                     1       0
                     1       0
                     1       0
                     0       1
                     0       1
                     1       0
                     1       0
                     0       0", header = T, stringsAsFactors = F)

#Create a factor based on combination
df$Data <- as.factor(paste(df$Rabatt, df$Gewinnspiel, sep = ""))

library(dplyr)
#Calculate number of occurrence for each combination using summarise
df_mod <- df %>%
  group_by(Data) %>%
  summarise(Count = n())

#Draw pie
pie(df_mod$Count, df_mod$Data)

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

https://stackoverflow.com/questions/48535779

复制
相关文章

相似问题

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