【问题标题】:Unexpected equal symbol error意外的等号错误
【发布时间】:2015-09-03 21:22:53
【问题描述】:

我正在尝试创建一个列表,其中列名是来自字符串列表的日期字符串。假设我的字符串列表是:

stringList=list("1-1-2001","1-1-2002")

我想创建一个这样的列表:

AList= list(stringList[[1]]=5)

所以当我显示它时我会得到这样的东西:

$`1-1-2001`
# [1] 5

这可能吗?如果我直接写字符串,这会起作用,否则会出错:

错误:“AList= list(stringList[[1]]="

中出现意外的 '='

【问题讨论】:

    标签: r string date


    【解决方案1】:

    应避免使用无效语法的名称。

    如果你真的想要这个(为什么?),setNames 可能是最简单的:

    Alist <- setNames(list(1, 2), stringList)
    

    你也可以这样做:

    Blist <- list()
    Blist[[stringList[[1]]]] <- 3
    

    【讨论】:

      【解决方案2】:

      试试这个例子,我们需要使用引号或反引号来访问无效的列名。

      stringNames=c("1-1-2001","1-1-2002")
      
      stringList <- list(5,6)
      names(stringList) <- stringNames
      
      #this gives errors
      stringList$1-1-2001
      # Error: unexpected numeric constant in "stringList$1"
      
      #we can use backticks - ` `
      stringList$`1-1-2001`
      # [1] 5
      
      #or we can use quotes - " " , thanks @Roland
      stringList$"1-1-2001"
      # [1] 5
      

      【讨论】:

      • 你也可以用引号代替反引号。
      • 感谢@Roland,更新了帖子。我的偏好是对字符串使用引号,对无效列名使用反引号,因此它们在 RStudio 中的颜色不同。
      猜你喜欢
      • 2015-12-08
      • 2014-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-19
      • 1970-01-01
      • 1970-01-01
      • 2012-06-19
      相关资源
      最近更新 更多