如何修复R错误:不期望的字符串常数

947 阅读2分钟

你在R中可能遇到的一个常见错误是:

Error: unexpected string constant in...

当你在R中使用引号的位置不正确时,就会出现这个错误。

下面的三个例子说明了在不同的情况下会出现这种错误。

例1:导入文件时出现意外的字符串常数

假设我们试图在R语言中导入一个以冒号为分隔符的文件作为一个数据框架。

#attempt to import colon-delimited file
read.csv("C:\\Users\\Bob\\data.csv", sep";")

Error: unexpected string constant in "read.csv("C:\\Users\\Bob\\data.csv", sep";""

我们收到一个错误,因为我们忘了在sep参数后面加上一个等号。

如果我们加上一个等号,我们就能解决这个错误:

#import colon-delimited file
read.csv("C:\\Users\\Bob\\data.csv", sep=";")

  team points
1    A      4
2    B      9
3    C      9
4    D      8
5    E      6

例2:查看数据时出现意外的字符串常数

假设我们试图查看一个向量中的数值:

#create numeric vector of values
data <- c(4, 4, 5, 6, 8, 10, 13, 15, 19, 18)

#attempt to view values
data""

Error: unexpected string constant in "data"""

我们收到了一个错误,因为我们不小心在向量名称后面加上了引号。

如果我们简单地去掉这些引号,就可以解决这个错误:

#create numeric vector of values
data <- c(4, 4, 5, 6, 8, 10, 13, 15, 19, 18)

#view values
data

[1]  4  4  5  6  8 10 13 15 19 18

例3:创建图时出现意外的字符串常数

假设我们试图查看一个向量中的数值:

#create numeric vector of values
data <- c(3, 3, 4, 5, 5, 7, 8, 12, 15, 16, 17, 19, 22, 25)

#attempt to create boxplot to visualize distribution of values
boxplot(data, col'steelblue') 

Error: unexpected string constant in "boxplot(data, col'steelblue'"

我们收到了一个错误,因为我们忘记在col参数后面加上一个等号。

如果我们简单地加上一个等号,我们就能解决这个错误:

#create numeric vector of values
data <- c(3, 3, 4, 5, 5, 7, 8, 12, 15, 16, 17, 19, 22, 25)

#create boxplot to visualize distribution of values
boxplot(data, col='steelblue') 

意外的字符串常数错误可能发生在许多不同的情况下,但这三个例子说明了它可能发生的常见情况。

其他资源

下面的教程解释了如何修复R中的其他常见错误:

如何修复:(列表)对象不能被胁迫为'double'类型
如何在R中修复:ExtractVars中的无效模型公式
如何在R中修复:替换的长度为零