在R中对数字向量绘制字符向量

Her*_*nLG 5 plot r vector character dataframe

我在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
Run Code Online (Sandbox Code Playgroud)

我想绘制的,使用x轴上的Sentence.Type列,每个单元格的实际名称作为x轴上的一个点.我希望y轴以1.5的步长从1到4

到目前为止,我还没有能够用plot()而不是hist()来绘制这个.我不断得到不同类型的错误,主要是因为data.frame中字符列的性质.

我知道这对大多数人来说应该是容易的,但我仍然是R和R的菜鸟,在几个小时后我无法得到正确的情节.任何帮助深表感谢.

编辑:

我得到的一些错误:

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

或者:(这不会给出错误,但绝对不是我想要的图形.它具有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")
Run Code Online (Sandbox Code Playgroud)

And*_*rie 12

默认plot函数有一个方法,允许您在x轴上绘制因子,但要使用它,您必须将文本数据转换为factor:

这是一个例子:

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

plot(factor(x), y)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

并使用您的示例数据:

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")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述