簡體   English   中英

在 R 中的數據框中創建值的條形圖

[英]Create Bargraph of values in a dataframe in R

假設我有以下數據框

set.seed(85)
a <- data.frame(replicate(10,sample(0:3,5,rep=TRUE)))

我想創建數據框中值的條形圖(即顯示總共有多少個 0、1、2 和 3)。

然而

hist(a)

給我錯誤'x' must be numericas.numeric(a)給我錯誤(list) object can not be coerced to type 'double'

如何制作數據框中值的條形圖? 同樣最好是,它應該忽略 N/A 值。

任何幫助深表感謝。

繪制“總共有多少個 0、1、2 和 3”就是繪制這些值的計數。 因此,合適的圖形類型是barplot ,而不是直方圖。

barplot(table(unlist(a)))

在此處輸入圖片說明

如果數據已更改為a所有元素等於其中一個值,在本例中為"2" ,則替換為NA ,解決方案可能是強制因子手動設置級別。

a[a == "2"] <- NA
a2 <- unlist(a)
a2 <- factor(a2, levels = min(a2, na.rm = TRUE):max(a2, na.rm = TRUE))
barplot(table(a2))

在此處輸入圖片說明

ggplot2

此外,在另一個答案中,有一個ggplot解決方案不正確。 我在評論中提出了更正,但我還沒有得到答案,並且提議的更正也適用於這種情況,而無需強制因素。

library(ggplot2)

ggplot(stack(a), aes(x = values)) + 
  geom_bar()

在此處輸入圖片說明

直方圖以及 ggplot2 中的 geom_histogram 用於連續數據。 您需要一個條形圖來可視化離散數據。 除了圖形中的 barplot,您還可以在 ggplot2 中使用 geom_bar。 ggplot2 語法是:

library(ggplot2)
set.seed(85)
a <- data.frame(replicate(10,sample(0:3,5,rep=TRUE)))
ggplot(stack(a)) + geom_bar(aes(x=values))

暫無
暫無

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

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