Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R As公式中的意外符号,Can';找不到_R_String_Text_Syntax Error_Formula - Fatal编程技术网

R As公式中的意外符号,Can';找不到

R As公式中的意外符号,Can';找不到,r,string,text,syntax-error,formula,R,String,Text,Syntax Error,Formula,我一直在使用as.formula来设置glm,但我不知道意外符号在哪里。部分问题是我转换的字符向量太长。它大约有700个单词,中间插入了+,以便将其转换为公式。错误如下所示: Error in parse(text = x, keep.source = FALSE) : <text>:2:10080: unexpected symbol 我可以肯定的是: 没有重复的项目 除了字母数字和下划线()之外,没有其他符号 没有项目以数字开头 我对R不够精通,无法理解如何阅读as.f

我一直在使用
as.formula
来设置glm,但我不知道意外符号在哪里。部分问题是我转换的字符向量太长。它大约有700个单词,中间插入了
+
,以便将其转换为公式。错误如下所示:

Error in parse(text = x, keep.source = FALSE) : 
   <text>:2:10080: unexpected symbol
我可以肯定的是:

  • 没有重复的项目
  • 除了字母数字和下划线(
    )之外,没有其他符号
  • 没有项目以数字开头
  • 我对R不够精通,无法理解如何阅读
    as.formula
    或函数调用本身的文档

    有什么想法吗?

    代码:2:10080正在为您提供错误的位置。第二行,第10080个字符。考虑:

    parse(text="1 + 1 + 2\n a - 3 b")
    # Error in parse(text = "1 + 1 + 2\n a - 3 b") : 
    #   <text>:2:8: unexpected symbol
    
    解析(text=“1+1+2\n a-3 b”) #分析时出错(text=“1+1+2\n a-3 b”): #:2:8:意外符号 这里的错误是
    b
    ,这是对符号的非法使用,您会注意到它是第二行的第8个字符


    很可能您丢失了一个
    +
    ,但如果没有错误背后的数据,就无法知道。另外,不是为了判断什么,但这是一个非常多的变量要坚持到一个模型。我希望你有很多数据点。

    以下是我解决这个问题的方法

    features = make.names(features)
    
    right_side = paste0(features, collapse=" + ")
    
    fml = as.formula(sprintf(" ~ %s", right_side))
    

    这只是一个语法错误,对于这么长(太长)的公式,您只需仔细观察,这将是乏味的。但是如果没有完整的
    as.formula
    调用和将要转换为公式的完整字符向量,我们就无法发现语法错误。呃,我就是这么想的。您认为在复制粘贴后尝试运行glm是否仍然有效?因为我试过分析文本,但没有迹象表明出了什么问题。向量太长了,当我把它放到源代码中时,它的后半部分甚至都不是绿色的。复制并粘贴到一个普通的旧文本编辑器中,然后开始搜索。我没有太多使用子字符串的经验,但是有没有一个函数来指定公式中该区域的字符?我猜调用的第一行是
    “Dependent\u Variable~”
    ,第二行是公式的其余部分。另一个主要问题是文本中只有16000个字符,所以我不知道如何找到符号。我认为这将是最好的方法。100080错误是我第一个来这里的原因。我想知道是否还有其他解决办法。有趣的是,这甚至不是我用过的最长的向量。找到了!我忘了删除其中一个部分中的空格。
    features = make.names(features)
    
    right_side = paste0(features, collapse=" + ")
    
    fml = as.formula(sprintf(" ~ %s", right_side))