0

我在控制台中输入的内容(定义了 alp、DF1、DF2):

    LT <- left.tail=FALSE
    q <- qf(alp, DF1, DF2, LT)
    q

我得到了什么:

     LT <- left.tail=FALSE
     Error in LT <- left.tail = FALSE : could not find function "<-<-"
     > q <- qf(alp, DF1, DF2, LT)
     > q
     [1] 0.4490486

我正在寻找的答案是 2.22,当 Lower Tail 被定义为 false 时得到。

为什么它告诉我“<-<-”不可用,我没有写这个函数?有没有办法为 lower.tail 存储 TRUE/FALSE 值?

为了进一步解释,我正在尝试编写一个代码,我只需在顶部输入值并从中获取答案:

data.entry(1)


a1 <- mean(var2)
v1 <- var(var2)
SD1 <- sd(var2)
n1 <- max(n)
a2 <- mean(var3)
v2 <- var(var3)
SD2 <- sd(var3)
n2 <- max(n)

int <- 1-0.9 #given interval
LT <- FALSE #Right Tailed- H1: >/ =/=
TT <- 0 #Two Tailes- H1: = / =/=

alp.O <- 0.1 #Given Alpha 
alp <- alp.O/(1+TT)
DF1 <- n1 - 1
DF2 <- n2 -1
q <- qf(alp, DF1, DF2, left.tail=LT) #ALP, DF1, DF2
f <- q-2*q*RT #t-Critical Value - Rejection Level
F <-  v1/v2 #Parameter of Interest1 / Parameter of Interest2
  
print(F==f)

print(F>f)

print(F<f)

它还没有完成,旧代码有一些残留,请忽略它们。

4

3 回答 3

2

在我看来,这就像 R 中的解析器异常。表达式

 LT <- left.tail=FALSE

被解析为

 (LT <- left.tail) = FALSE

这与

 `<-`(LT, left.tail) = FALSE

这与

 `<-<-`(LT, left.tail, FALSE)

这是您的错误消息的来源。

我称之为奇怪,因为我希望它被解析为

LT <- left.tail <- FALSE

分配FALSEleft.tail,然后分配给LT

于 2022-02-04T17:28:32.827 回答
0

正确的方法是

qf(p = alp, df1 = DF1, df2 = DF2, lower.tail = FALSE)

请注意,qf(alp, DF1, DF2, FALSE)传递FALSE给 的第四个参数qf(),即 isncp和 not lower.tail

于 2022-02-04T18:08:00.307 回答
0

在 R 中,您可以使用 2 个不同的运算符进行赋值:<-=

也就是说,如果你想将 3 的值赋给变量x,你可以写x<-3x=3

当您编写: 时LT <- left.tail=FALSE,您不是在测试是否left.tail为 FALSE(您将使用比较运算符 执行此操作==),而是设置了双重赋值 - 即,将值分配FALSEleft.tail and LT。如果您使用相同的运算符,您实际上可以做到这一点:x=y=4或者k<-d<-5两者都按预期工作。但是,如果混合使用这些运算符,则会出现错误。

我不确定生成函数的幕后发生了什么<-<-,但我知道这是 R 试图在一个表达式中组合两个不同的赋值运算符的结果。如果您确实想做双重赋值,只需使用相同的运算符:

LT <- left.tail <- FALSE

就你而言,我认为你不想做双重任务。很可能,您想测试是否left.tail为 FALSE,并将结果存储在LT. 您可以通过以下几种方式做到这一点:

# Tests for only FALSE values
LT <- left.tail==FALSE
LT <- isFALSE(left.tail)

# Tests for "falsy" values like 0
LT <- !left.tail
于 2022-02-04T15:56:21.557 回答