Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中的条形图,采样数据的聚合_R_Aggregate_Bar Chart - Fatal编程技术网

R中的条形图,采样数据的聚合

R中的条形图,采样数据的聚合,r,aggregate,bar-chart,R,Aggregate,Bar Chart,我想要一个堆叠的条形图,或者至少两个下面数据的条形图历史图。但我不知道怎么做。plotonline不是我要寻找的解决方案。请看下面 online offline 1 sehrwichtig wichtig 2 wichtig unwichtig 3 sehrwichtig unwichtig 4 sehrwichti

我想要一个堆叠的条形图,或者至少两个下面数据的条形图历史图。但我不知道怎么做。plotonline不是我要寻找的解决方案。请看下面

          online              offline
1         sehrwichtig             wichtig
2             wichtig           unwichtig
3         sehrwichtig           unwichtig
4         sehrwichtig         sehrwichtig
5         sehrwichtig         sehrwichtig
6         sehrwichtig           unwichtig
7         sehrwichtig           unwichtig
8             wichtig             wichtig
9             wichtig           unwichtig
10        sehrwichtig         sehrwichtig
11        sehrwichtig             wichtig
12        sehrwichtig           unwichtig
13            wichtig         sehrwichtig
14        sehrwichtig             wichtig
我知道我需要一个步骤,将数据聚合到:


但是怎么做呢?

我自己没有做过,但是我知道很多人在将其放入第二个数组时使用的R包。这叫做重塑:


至于绘图部分,我认为lattice或ggplot可能都有功能,可以完全实现您想要的功能,但我还是一个R新手,所以我不能说更多…

我自己没有做过,但我知道很多人在将其放入第二个数组时使用的R包。这叫做重塑:


至于绘图部分,我认为lattice或ggplot可能都有功能来完成您想要的工作,但我还是一个R新手,所以我不能说更多…

聚合只是对应用程序内部表的简单调用:


您可以将其输入条形图。

该聚合只是对应用程序中的表的简单调用:


您可以将其输入条形图。

Dirk的答案是可行的,但在OP的数据上,一个简单的applyfoo,2,表将不起作用-您需要处理0条目,可能是这样的:

my.data <- "online              offline
1         sehrwichtig             wichtig
2             wichtig           unwichtig
3         sehrwichtig           unwichtig
4         sehrwichtig         sehrwichtig
5         sehrwichtig         sehrwichtig
6         sehrwichtig           unwichtig
7         sehrwichtig           unwichtig
8             wichtig             wichtig
9             wichtig           unwichtig
10        sehrwichtig         sehrwichtig
11        sehrwichtig             wichtig
12        sehrwichtig           unwichtig
13            wichtig         sehrwichtig
14        sehrwichtig             wichtig"

df <- read.table(textConnection(my.data))

df.labels <- unique(as.character(apply(df,2,as.character)))
tallies <- apply(df,2,function(x)table(x)[df.labels])
tallies[is.na(tallies)] <- 0
rownames(tallies) <- df.labels

Dirk的答案是可行的,但在OP的数据上,一个简单的applyfoo,2,表将不起作用-您需要处理0条目,可能是这样的:

my.data <- "online              offline
1         sehrwichtig             wichtig
2             wichtig           unwichtig
3         sehrwichtig           unwichtig
4         sehrwichtig         sehrwichtig
5         sehrwichtig         sehrwichtig
6         sehrwichtig           unwichtig
7         sehrwichtig           unwichtig
8             wichtig             wichtig
9             wichtig           unwichtig
10        sehrwichtig         sehrwichtig
11        sehrwichtig             wichtig
12        sehrwichtig           unwichtig
13            wichtig         sehrwichtig
14        sehrwichtig             wichtig"

df <- read.table(textConnection(my.data))

df.labels <- unique(as.character(apply(df,2,as.character)))
tallies <- apply(df,2,function(x)table(x)[df.labels])
tallies[is.na(tallies)] <- 0
rownames(tallies) <- df.labels

使用ggplot2,您不需要预先聚合数据:

library(ggplot2)
qplot(online, data = df, fill = offline)
qplot(offline, data = df, fill = online)

使用ggplot2,您不需要预先聚合数据:

library(ggplot2)
qplot(online, data = df, fill = offline)
qplot(offline, data = df, fill = online)

为了简单起见,我接受了这些解决方案。谢谢大家。我学到了很多。为了简单起见,我接受了这些解决方案。谢谢大家。我学到了很多。嗯,我需要处理0个条目。谢谢你的提示。我需要处理0个条目。谢谢你的提示。
> tallies
            online offline
sehrwichtig     10       4
wichtig          4       4
unwichtig        0       6
#generate data
df<- read.table(textConnection('
      online              offline
 sehrwichtig             wichtig
     wichtig           unwichtig
 sehrwichtig           unwichtig
 sehrwichtig         sehrwichtig
 sehrwichtig         sehrwichtig
 sehrwichtig           unwichtig
 sehrwichtig           unwichtig
     wichtig             wichtig
     wichtig           unwichtig
 sehrwichtig         sehrwichtig
 sehrwichtig             wichtig
 sehrwichtig           unwichtig
     wichtig         sehrwichtig
 sehrwichtig             wichtig'
 ),header=T)

#factor levels should be the same
levels(df$online) <- levels(df$offline)

my_table <- t(aaply(df,2,table))

library(graphics)
barplot2(my_table,legend = rownames(my_table), ylim = c(0, 20))
library(ggplot2)
qplot(online, data = df, fill = offline)
qplot(offline, data = df, fill = online)