我希望为不同变量(v1-v5)的值绘制不同类别(虚拟数据中的V,C和S)的条形图,以查看不同类别的范围在变量中的变化情况。有没有办法在R中做到这一点?
Factor v1 v2 v3 v4 v5
v 12.0 8.4 5.3 3.0 3.5
v 11.8 7.5 4.7 2.8 3.7
c 13.2 9.5 5.7 3.0 4.1
c 13.4 9.3 6.3 3.3 3.8
c 10.5 7.7 5.0 2.5 3.2
s 13.1 9.6 5.4 3.1 3.9
s 15.0 9.0 5.1 4.5 9.0
它应该是一个使用某个包的非常简单的代码,但我无法弄明白。
答案 0 :(得分:3)
你可以这样做:
library(data.table)
df2 <- melt(setDT(df), measure.vars = patterns("^v"))
library(ggplot2)
ggplot(df2, aes(x=Factor, y=value1)) +
stat_summary(aes(fill=variable), fun.y="sum", geom = "bar", position="dodge") +
theme_bw()
这给出了:
使用过的数据:
df <- read.table(text="Factor v1 v2 v3 v4 v5
v 12.0 8.4 5.3 3.0 3.5
v 11.8 7.5 4.7 2.8 3.7
c 13.2 9.5 5.7 3.0 4.1
c 13.4 9.3 6.3 3.3 3.8
c 10.5 7.7 5.0 2.5 3.2
s 13.1 9.6 5.4 3.1 3.9
s 15.0 9.0 5.1 4.5 9.0", header=TRUE)
答案 1 :(得分:0)
还有另一种方法可以完成这项任务
df<- read.csv("dummy.csv",header=TRUE,sep=",")
df
class(df)
df2<-aggregate(cbind(df$v1,df$v2,df$v3,df$v4,df$v5)~df$Factor, FUN=sum)
df2
barp<-barplot(t(df2[ , -1]),col=c("blue", "red", "green", "orange", "gold"));
axis(side = 1, at = barp, labels = df2$`df$Factor`)