2012-10-22 187 views
2

針對數字矢量的字符向量I有R中的以下數據幀:劇情中的R

>AcceptData 
    Mean.Rank Sentence.Type 
1  2.5  An+Sp+a 
2  2.6  An+Nsp+a 
3  2.1  An+Sp-a 
4  3.1  An+Nsp-a 
5  2.4  In+Sp+a 
6  1.7  In+Nsp+a 
7  3.1  In+Sp-a 
8  3.0  In+Nsp-a 

其中我要繪製,與x軸的Sentence.Type柱,用實際名稱每個單元格作爲x軸上的一個點。我希望Y軸從1到4以5爲步長.5

到目前爲止,我還沒有能夠將plot()與hist()都不繪製在一起。我不斷收到不同類型的錯誤,主要是因爲data.frame中字符列的性質。

我知道這對大多數人來說應該是很容易的,但是我還是喜歡R,而且在幾個小時後我無法得到正確的情節。任何幫助深表感謝。

編輯:

一些我已經得到了錯誤:

> hist(AcceptData$Sentence.Type,AcceptData$Mean.Rank) 
Error in hist.default(AcceptData$Sentence.Type, AcceptData$Mean.Rank) : 
    'x' must be numeric 

或者:(這不給一個錯誤,但絕對不是我想要的圖形,具有所有的X。值侷促於x軸的左邊)

plot(AcceptData$Sentence.Type,AcceptData$Mean.Rank,lty=5,lwd=2,xlim=c(1,16),ylim=c(1,4),xla b="Sentence Type",ylab="Mean Ranking",main="Mean Acceptability Ranking per Sentence") 
+1

你能給的例子是什麼你試過了,錯誤信息是什麼? – January

回答

8

默認plot功能有一個方法,可以讓你上繪製x軸的因素,而是利用這一點,你有你的文字轉換成達TA的factor

下面是一個例子:

x <- letters[1:5] 
y <- runif(5, 0, 5) 

plot(factor(x), y) 

enter image description here

並與您的樣本數據:

AcceptData <- read.table(text=" 
Mean.Rank Sentence.Type 
1  2.5  An+Sp+a 
2  2.6  An+Nsp+a 
3  2.1  An+Sp-a 
4  3.1  An+Nsp-a 
5  2.4  In+Sp+a 
6  1.7  In+Nsp+a 
7  3.1  In+Sp-a 
8  3.0  In+Nsp-a", stringsAsFactors=FALSE) 

plot(Mean.Rank~factor(Sentence.Type), AcceptData, las=2, 
    xlab="", main="Mean Acceptability Ranking per Sentence") 

enter image description here

+0

謝謝安德烈。這對圖表確實有很大的幫助。幾乎在那裏。現在我將會忽略的是在x軸中有作爲標籤的Sent.Type列中每個單元格的實際名稱。 – HernanLG

+0

@Hernan_L我已經爲您的數據添加了一個完整的示例 – Andrie

+0

@ Andrie。感謝這幾乎是我想要的。我現在只能掙扎,因爲我想爲x軸的每個值設置較小的符號。 (線條看起來不太好)。我想得到小點,甚至直方圖欄會很好。問題是我不能使用hist函數,因爲x參數不是數字,並且我試圖添加參數: type =「p」,pch =「o」 但是它們不會改變任何東西。 再次感謝您的幫助。 – HernanLG