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