2017-04-13 60 views
-1

我正的错误是“后失踪名操作人员。”:后谷歌表JavaScript错误

缺少名称。运算符

我在调试/在第10行运行我的代码时得到它。任何人都知道解决方法?

1 function codebook_level() { 
2  
3  if(!require(pacman)) { 
4  install.packages("pacman"); require(pacman)} 
5 p_load(magrittr, data.table) 
6 require(dplyr) 
7  
8  
9 read_add_name_col <- function(file){ 
10  rn <- gsub(".csv", "", file, ignore.case=T) 
11  spl <- strsplit(rn, "/") %>% unlist() 
12  svy <- spl[length(spl)] 
13  df <- fread(file) 
14  df$survey_series <- svy 
15  return(df) 
.... 
+0

你有什么错误?脚本应该做什么? – jrook

+0

错误出现在标题中,但已解决。现在在同一行上得到一个通用的“语法”错误。完整的代码旨在从另一个表中拉取地理区域,以确定它是否存在于另一个表格中以及以什么粒度存在。 –

回答

1

<-不是JavaScript运算符。它将被解析为<比较运算符,然后是-

但令人惊讶的是,这不是问题,但它可能是a问题。 Google表格实现了一种语言,非常像 JavaScript大约ES3(很长时间后面),虽然不完全相同。那时候,你不能使用关键字作为属性名字文字。所以,在你的问题标题中的具体问题是在这里:

rn <- gsub(".csv", "", file, ignore.case=T) 
// ---------------------------------^ 

要访问一个名为case之前ES5规范的更改语法属性,您必须使用括号符号和字符串:ignore["case"]代替ignore.case

但是,这只是问题中的错误;整个代码看起来可能有其他问题,除非<-是某种Sheets语言扩展。


我做编辑的“案” [下],这样解决了,但现在我在同一条线上得到一个通用的“语法”错误。

嗯,是的。您必须处理围绕<-的各种其他问题,这些问题并不意味着存在于其他非JavaScript主题中。这是令人印象深刻的是,解析器能够走到这一步,真的,但sp1令牌下一行只是完全杀死它

看起来<-,就是要=rn和这样的意思是变量。如果是这样的:

另外值得一提的是,

gsub(".csv", "", file, ignore.case=T) 

...看起来很多就像它试图使用命名参数。 JavaScript没有命名的参数,这是什么代码确实是:

ignore.case=T 
gsub(".csv", "", file, T) 

...但只评估0​​一次。

+0

< - 位不是扩展名。这是原始脚本的形式,我犯了错误的思想将是一个更直接的翻译成表。我没有编辑“案例”,以解决这个问题,但现在我在同一行上得到了一个通用的“语法”错误。 –

+0

@DennisLaviolette:这是因为下一行的'sp1'对解析器没有意义。该代码不是远程正确的JavaScript/Google表格脚本。我建议学习语言并将代码转换成它。我在上面添加了一些注释。 –