簡體   English   中英

如何將兩個向量(我想要值的頻率)組合到 dataframe 中,用於 R 中的並排欄 plot

[英]How to combine two vectors (I want frequency of values) into a dataframe for a side by side bar plot in R

可以看到有關於實際繪制它的類似問題,但我真的很難正確組織數據。 我有兩個向量存儲兩支球隊(主隊和客隊)的 100,000 場模擬足球比賽的進球數。 我的最終目標是並排的欄 plot 顯示每個目標數量的頻率。

我使用 table() 來顯示頻率,然后將它們與 NA 合並為 0,以便它們最終具有相同的長度,但是當我嘗試使用 ggplot2 到 plot 時,我遇到了很多問題,因為如何它們被合並我最終以 HomeGoals(如 0、1、2、3、4、5)、Freq.x 和 Freq.y(Horm/Away 的頻率)作為列標題

有一個更好的方法嗎? 任何幫助表示贊賞!

很難理解您遇到了什么樣的問題。 這是對模擬數據的嘗試。 您可能需要考慮如何組織數據。 我假設您有一個數據框(或兩個向量)。

set.seed(1)

df = data.frame(home = sample(0:8, size = 1000, replace = T),
                away = sample(0:6, size = 1000, replace = T))

require(ggplot2)
require(gridExtra)

p1 = ggplot(df) +
    geom_histogram(aes(x = home)) + ggtitle("Home") + xlab("Goals")

p2 = ggplot(df) +
   geom_histogram(aes(x = away)) + ggtitle("Away") + xlab("Goals")

grid.arrange(p1, p2, ncol=2)    

在此處輸入圖像描述

要並排獲得條形圖:

df2 = reshape2::melt(df1, value.name = 'score', variable.names = 'team')

df3 = as.data.frame(table(df2$score, df2$variable))

ggplot(df3, aes(x=Var1, y=Freq, fill=Var2)) + 
    geom_bar(position="dodge", stat="identity")    

在此處輸入圖像描述

嘗試將position_dodge()ggplot2一起使用 請記住,數據必須像示例數據一樣采用長格式

ggplot(df1) + geom_bar( aes(values, fill=ind), position=position_dodge() )

條形圖

數據

df1 <- structure(list(values = c(3L, 7L, 4L, 8L, 10L, 5L, 7L, 9L, 1L, 
8L, 7L, 0L, 8L, 7L, 0L, 10L, 6L, 9L, 9L, 2L, 3L, 10L, 9L, 8L, 
5L, 4L, 1L, 6L, 0L, 2L, 5L, 7L, 2L, 9L, 10L, 9L, 2L, 8L, 9L, 
4L, 4L, 3L, 8L, 0L, 5L, 10L, 9L, 9L, 7L, 4L, 10L, 1L, 2L, 7L, 
1L, 4L, 5L, 10L, 5L, 8L, 8L, 2L, 0L, 9L, 1L, 7L, 3L, 5L, 3L, 
10L, 6L, 8L, 6L, 1L, 3L, 7L, 4L, 10L, 0L, 9L, 5L, 0L, 0L, 10L, 
9L, 0L, 5L, 1L, 4L, 9L, 3L, 8L, 4L, 6L, 4L, 8L, 9L, 1L, 6L, 8L, 
3L, 2L, 5L, 5L, 5L, 0L, 0L, 0L, 10L, 7L, 0L, 3L, 3L, 10L, 4L, 
8L, 6L, 3L, 0L, 10L, 1L, 2L, 4L, 5L, 7L, 10L, 1L, 9L, 7L, 4L, 
9L, 2L, 5L, 9L, 0L, 5L, 9L, 0L, 8L, 6L, 10L, 5L, 0L, 4L, 6L, 
2L, 0L, 2L, 9L, 7L, 9L, 4L, 9L, 9L, 0L, 9L, 2L, 9L, 5L, 0L, 10L, 
0L, 3L, 0L, 7L, 3L, 3L, 1L, 6L, 0L, 4L, 6L, 2L, 3L, 4L, 1L, 7L, 
10L, 6L, 1L, 9L, 7L, 2L, 3L, 1L, 7L, 3L, 10L, 10L, 1L, 5L, 2L, 
1L, 3L, 8L, 0L, 8L, 6L, 1L, 8L, 7L, 4L, 4L, 5L, 2L, 2L, 7L, 4L, 
8L, 4L, 4L, 7L, 3L, 8L, 8L, 4L, 7L, 4L, 10L, 2L, 4L, 1L, 0L, 
8L, 5L, 3L, 2L, 0L, 0L, 5L, 8L, 6L, 6L, 9L, 7L, 1L, 1L, 10L, 
10L, 5L, 8L, 10L, 2L, 0L, 2L, 10L, 3L, 10L, 4L, 7L, 1L, 1L, 7L, 
1L, 8L, 8L, 4L, 0L, 9L, 3L, 2L, 3L, 3L, 10L, 3L, 5L, 0L, 2L, 
2L, 2L, 10L, 2L, 7L, 8L, 4L, 10L, 4L, 6L, 3L, 9L, 0L, 9L, 6L, 
5L, 5L, 8L, 3L, 1L, 7L, 4L, 3L, 9L, 6L, 10L, 6L, 8L, 1L, 9L, 
10L, 0L, 1L, 6L, 6L, 8L, 10L, 2L, 8L, 5L, 3L, 8L, 4L, 9L, 10L, 
1L, 8L, 4L, 10L, 5L, 10L, 0L, 6L, 1L, 7L, 5L, 5L, 10L, 8L, 8L, 
7L, 10L, 4L, 4L, 7L, 10L, 10L, 7L, 7L, 8L, 6L, 3L, 5L, 3L, 5L, 
10L, 1L, 5L, 10L, 3L, 4L, 0L, 9L, 7L, 2L, 9L, 1L, 3L, 10L, 9L, 
3L, 4L, 9L, 0L, 2L, 3L, 1L, 10L, 9L, 10L, 0L, 0L, 2L, 8L, 10L, 
10L, 5L, 4L, 1L, 10L, 10L, 5L, 0L, 8L, 6L, 8L, 7L, 1L, 6L, 7L, 
5L, 1L, 3L, 2L, 2L, 8L, 7L, 9L, 9L, 5L, 0L, 9L), ind = structure(c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), class = "factor", .Label = c("home", 
"away"))), class = "data.frame", row.names = c(NA, -400L))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM