我在控制台中输入的内容(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,当下尾被定义为false时,我得到了这个答案。
为什么它告诉我"<-<-“是不可能的,我没有写这个函数?是否有方法存储lower.tail的真/假值?
为了进一步解释,我试图编写一段代码,在其中我只需输入顶部的值并从中得到答案:
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)它还没有完成,还有一些旧代码的残值,请忽略它们。
发布于 2022-02-04 17:28:32
在我看来,这就像是R中的一个解析器的奇怪之处。
LT <- left.tail=FALSE被解析为
(LT <- left.tail) = FALSE这和
`<-`(LT, left.tail) = FALSE这和
`<-<-`(LT, left.tail, FALSE)这就是你的错误信息的来源。
我说这是一个奇怪的现象,因为我原以为它会被解析成
LT <- left.tail <- FALSE它将FALSE分配给left.tail,然后分配给LT。
发布于 2022-02-04 15:56:21
在R中,您可以使用两个不同的运算符来分配:<-和=。
也就是说,如果要将3的值赋值给变量x,则可以编写x<-3或x=3。
编写:LT <- left.tail=FALSE时,不是测试left.tail是否为FALSE (您将使用比较运算符==),而是设置一个双重赋值- that,将值FALSE分配给left.tail和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-04 18:08:00
正确的方法是
qf(p = alp, df1 = DF1, df2 = DF2, lower.tail = FALSE)注意,qf(alp, DF1, DF2, FALSE)将FALSE传递给qf()的第四个参数,即ncp而不是lower.tail。
https://stackoverflow.com/questions/70989067
复制相似问题