簡體   English   中英

R中的條形圖:ggplot參數暗示不同的行數:

[英]Bar plot in R: ggplot arguments imply differing number of rows:

我有一個列表對象,如下所示->

> myaggregate
   input$AgeAndGender   input$CTR
1          Female_<18 0.030041698
2        Female_18-24 0.010918938
3        Female_25-34 0.009839806
4        Female_35-44 0.010193773
5        Female_45-54 0.009996056
6        Female_55-64 0.020024678
7          Female_65+ 0.030060728
8            Male_<18 0.028356698
9          Male_18-24 0.011031902
10         Male_25-34 0.010218562
11         Male_35-44 0.010168911
12         Male_45-54 0.010021256
13         Male_55-64 0.020191223
14           Male_65+ 0.029717747

我試圖繪制一個圖表,以表示AgeAndGender(X軸)中每個值的點擊率水平(Y軸)。 但是,當我嘗試簡單繪圖時,我遇到以下問題->

> ggplot(data= myaggregate,aes(x=input$AgeAndGender,y=input$CTR))+geom_bar()
Error in data.frame(x = c("Male_35-44", "Female_65+", "Male_25-34", "Female_45-54",  : 
  arguments imply differing number of rows: 3378934, 14

我確定我缺少一些基本的知識。 任何幫助表示贊賞!

如果只想繪制值,則需要stat="identity"如以下示例所示:

library(ggplot2)

AgeAndGender <- c("f1","f2","f3")
CTR <- c(.1,.15,.12)
myaggregate <- data.frame(AgeAndGender, CTR)

ggplot(data= myaggregate,aes(x=AgeAndGender, y=CTR))  + geom_bar(stat = "identity")

結果如下:

在此處輸入圖片說明

在查看您對列表中數據的評論時,與我有關。 嘗試使myaggregate成為數據myaggregate

我能夠使用類似您正在使用的東西進行繪圖,但這是一個相當奇怪的構造。 數據幀通常在其中沒有美元符號,因為$是R中的中綴函數。我使用read.table讀取了數據,並且美元符號被轉換為句點。 我將列名稱放回原處,如下所示:

names(myaggregate) <- c('input$AgeAndGender',   'input$CTR')

然后,您將獲得一個相當混亂的條形圖:

ggplot(data= myaggregate,aes(x=`input$AgeAndGender`,y=`input$CTR`))+ geom_bar(stat = "identity")

在此處輸入圖片說明

當您只放入代碼時,未加引號的名稱將被解釋為x是input數據框中的“ AgeAndGender”列。 如果僅使用普通引號而不使用反引號,則不會成功。

在此處輸入圖片說明

暫無
暫無

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

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