【问题标题】:function "." not found when creating data.table功能 ”。”创建data.table时找不到
【发布时间】:2022-01-09 01:05:03
【问题描述】:
gradSummary <- function(grads) {
grads$Total[is.na(grads$Total)] <- 0
total.grads <- sum(grads$Total)
data.table[, .(SchoolPerc = round(100*sum(grads$Total)/total.grads, 2), avgRank = round(mean(grads$Rank), 0), avgSalary = round(mean(grads$Median), 2)), by = grads$Major_category][order(grads$avgRank)]



}
gradSummary(grads)

有谁知道为什么这个代码输出返回“。”未找到?我已经加载了 data.table 库。

【问题讨论】:

    标签: r data.table


    【解决方案1】:

    您使用data.table 作为对象存在问题。像这样的东西应该可以工作:

    gradSummary <- function(grads) {
    grads$Total[is.na(grads$Total)] <- 0
    total.grads <- sum(grads$Total)
    data.table::data.table(grads)[, .(SchoolPerc = round(100*sum(grads$Total)/total.grads, 2), avgRank = round(mean(grads$Rank), 0), avgSalary = round(mean(grads$Median), 2)), by = grads$Major_category][order(grads$avgRank)]
    }
    gradSummary(grads)
    

    【讨论】:

      【解决方案2】:

      这不是它的工作方式。 data.table 是一个创建data.table 对象的函数,您尝试对data.table 类对象执行一些特定的操作。但您只能在 创建 data.table 对象之后执行此操作。

      library(data.table)
      
      data.table[, .(a = 1 + 2)]
      #> Error in .(a = 1 + 2): could not find function "."
      

      正确的语法是:

      library(data.table)
      
      data.table(a = 1 + 2)
      #>    a
      #> 1: 3
      

      与此同时,@mharinga 发布了答案,其中包含特定于您的代码的示例,但我将留下这个答案,因为也许我的解释会对您有所帮助。

      【讨论】:

      • 你的回答比我的更能说明问题:-)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-23
      • 2020-03-31
      • 2018-01-03
      • 1970-01-01
      相关资源
      最近更新 更多