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

使用MEPDF包epdf函数时触发cube函数报错:找不到函数'.'

解决MEPDF包在R4.1中的epdf函数报错问题

问题根源

报错Error in .(X1, X2) : could not find function "."的核心原因是:MEPDF包基于R3.0开发时,依赖旧版plyr包的语法——.(...)是plyr中list(...)的简写别名。在R4.1环境中,要么未加载plyr包,要么包内的依赖声明失效,导致系统无法识别.函数。

可行解决方案

方案1:手动加载plyr包

在运行示例代码前,先加载plyr包,让系统识别.(...)语法:

library(plyr)
library(MASS)
library(MEPDF)

data <- MASS::mvrnorm(100000, mu = c(0, 0), Sigma = diag(2))
density <- epdf(data,max_corner = c(2,2),
                min_corner = c(-2,-2),
                main_gridsize = c(0.05,0.05))

方案2:临时修改cube函数代码

如果加载plyr后仍报错,可通过trace函数临时替换报错代码,将非标准的.(...)改为R原生的list(...):

library(MASS)
library(MEPDF)

# 触发cube函数的代码编辑窗口
trace("cube", edit = TRUE)

在弹出的编辑器中,找到行:

lst <- eval(parse(text = paste(".(", char, ")", sep = "")))

替换为:

lst <- eval(parse(text = paste("list(", char, ")", sep = "")))

保存后重新运行示例代码即可。

方案3:安装兼容旧版plyr(可选)

若前两种方法无效,可尝试安装与R3.0环境匹配的旧版plyr包:

packageurl <- "https://cran.r-project.org/src/contrib/Archive/plyr/plyr_1.8.4.tar.gz"
install.packages(packageurl, repos=NULL, type="source")

安装完成后加载plyr包再执行目标代码。

内容的提问来源于stack exchange,提问作者Osvaldo Assunção

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 04:05:03