我现在和R完全迷失了。过去一周我一直想把它教给自己,但我已经陷入两天的饼图问题,我似乎无法弄明白。
我有一个包含多个列的表。其中两个我想创建一个饼图。 第一个被称为“Rabatt”,第二个被称为“Gewinnspiel”,现在它们可以bei 0表示False,1表示True,但两列中的两行都不能为True。所以组合可以是00 10或01.现在我想要一个饼图,显示有多少是00,10或01的百分比。 但是,如何告诉R只显示两行中的百分比,当它们包含值1时(因为当它们包含值0时它们是假的并且无关紧要,直到它们都为假),添加这两个然后还显示百分比两者都是0的情况?
我希望我的解释在某种程度上是可以理解的。
这是数据的一部分(总共超过100行)。
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
答案 0 :(得分:1)
以下是如何使用包dplyr
和table
函数
您的数据
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的新变量
df <- df %>% mutate(ny_var = paste(Rabatt, Gewinnspiel, sep = ""))
您将新变量绘制为饼图
pie(table(df$ny_var))
您可以查看汇总数据
table(df$ny_var)
答案 1 :(得分:1)
如果您不想使用其他软件包执行此任务,并且在标签中也包含%-numbers,请尝试此操作(df
是您的数据框):
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), "%"))
答案 2 :(得分:0)