You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行data.table代码报function '.' not found问题咨询

错误原因分析
  • 核心触发报错的原因是data.table语法使用错误:data.table是用于创建数据表的构造函数,不能直接放在[i, j, by]语法的开头作为操作对象。.[()是data.table专为DT[i, j, by]结构中j位置设计的特殊语法糖,离开这个上下文环境R会将.识别为普通函数,自然会报"function '.' not found"的错误。
  • 其余隐含语法问题:
    • 你要操作的数据集是传入的grads对象,聚合时应该以grads[, .(...), by = Major_category]的结构编写,不需要在列名前加grads$前缀,data.table的执行环境会自动识别当前数据集的列。
    • 链式调用order排序时,排序的是前面聚合生成的新表的avgRank列,不要加grads$,原grads表中不存在avgRank列,加前缀会触发新的报错。
修正后的代码
gradSummary <- function(grads) {
  grads$Total[is.na(grads$Total)] <- 0
  total.grads <- sum(grads$Total)
  grads[, .(
    SchoolPerc = round(100*sum(Total)/total.grads, 2), 
    avgRank = round(mean(Rank), 0), 
    avgSalary = round(mean(Median), 2)
  ), by = Major_category][order(avgRank)]
}
gradSummary(grads)

内容的提问来源于stack exchange,提问作者Gabriela Serna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 09:12:04