2012-10-22 113 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