【问题标题】:Estimation of Differences Between Means of Two Paired Samples using R使用 R 估计两个配对样本平均值之间的差异
【发布时间】:2015-11-15 19:06:18
【问题描述】:

我正在学习R语言编程,

我尝试编写自己的函数来构建置信区间估计两个配对样本均值之间的差异。

这是我的代码

My.Function <- function(X1,X2,con.int) {
    X1bar = sum(X1)/n
    X2bar = sum(X2)/n
    XD = X2-X1
    XDbar = sum(X2-X1)/n
    n = length(X1)
    Sd = sqrt((sum((XD-XDbar)^2))/(n-1))
    Alpha = 1 - con.int
    T = qt(Alpha/2, n-1)
    Lower.B = (X2bar - X1bar) - T*Sd/sqrt(n)
    Uper.B = (X2bar - X1bar) + T*Sd/sqrt(n)
    print(c(Lower.B,"X2bar - X1bar",Uper.B))
}

我需要显示结果并用它写说明,但我不能。

感谢帮助

【问题讨论】:

  • 您需要将n = ... 移动到第一行。您还需要返回值,因此在print 下添加invisible(list(Lower.B = Lower.B, Uper.B = Uper.B))。除此之外,我不确定你的问题是什么
  • 'cat''函数一般用于在返回最终结果之前创建控制台输出。一个通常只返回命名项目的紧凑列表。

标签: r static static-methods


【解决方案1】:

离你不远了。

R 按照您编写的顺序运行您的代码。所以你必须先创建n,然后才能在计算中使用它。

My.Function=function(X1,X2,con.int){
  n = length(X1) # this comes first!!
  X1bar=sum(X1)/n
  X2bar=sum(X2)/n
  XD = X2-X1
  XDbar=sum(X2-X1)/n
  Sd =sqrt((sum((XD-XDbar)^2))/(n-1))
  Alpha = 1- con.int
  T = abs(qt(Alpha/2, n-1))
  Lower.B = (X2bar - X1bar)- T*Sd/sqrt(n)
  Uper.B = (X2bar - X1bar)+ T*Sd/sqrt(n)
  print(c(Lower.B,"X2bar - X1bar",Uper.B))
}

我还取了 T-score 的绝对值,这样当qt() 返回负数时,您的上限和下限就不会混淆。

您可能还喜欢用于打印结果的cat 函数。 https://stat.ethz.ch/R-manual/R-devel/library/base/html/cat.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-22
    • 2012-12-11
    • 1970-01-01
    • 2013-06-11
    • 2021-11-15
    相关资源
    最近更新 更多