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

调用smd函数时出现‘unused arguments’错误求助

问题原因与解决方案

你遇到的错误是因为smd包的smd()函数并不支持传入Mean.1、s.1这类单独的汇总统计参数。该函数的设计逻辑是直接接收两组原始数据向量,而非预计算的均值、标准差和样本量。

正确用法示例

方法1:传入原始数据(符合smd包函数设计)

如果能获取或生成两组原始数据,可以直接传入:

library(smd)

Mean_x <- 75
Mean_y <- 25
n_x <- 25
n_y <- 25
sd_x <- 40
sd_y <- 20

# 生成模拟原始数据(如果有真实数据可替换)
group_x <- rnorm(n_x, mean = Mean_x, sd = sd_x)
group_y <- rnorm(n_y, mean = Mean_y, sd = sd_y)

# 计算SMD
temp_smd <- smd(group_x, group_y)

方法2:仅用汇总统计手动计算SMD

如果只有预计算的均值、标准差和样本量,可直接用SMD的公式手动计算(这也是smd函数底层的核心逻辑):

Mean_x <- 75
Mean_y <- 25
n_x <- 25
n_y <- 25
sd_x <- 40
sd_y <- 20

# 计算合并标准差
pooled_sd <- sqrt( ((n_x - 1)*sd_x^2 + (n_y - 1)*sd_y^2) / (n_x + n_y - 2) )
# 计算标准化均数差(SMD)
temp_smd <- (Mean_x - Mean_y) / pooled_sd

方法3:用其他支持汇总统计的包(备选)

如果习惯通过汇总统计参数计算,可以使用effectsize包的cohen_d()函数(功能等价于SMD):

library(effectsize)

Mean_x <- 75
Mean_y <- 25
n_x <- 25
n_y <- 25
sd_x <- 40
sd_y <- 20

temp_smd <- cohen_d(
  mu1 = Mean_x, mu2 = Mean_y,
  sd1 = sd_x, sd2 = sd_y,
  n1 = n_x, n2 = n_y
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 09:15:33