R "Could not find function <-<-"但我没有使用该功能



我在控制台中输入的内容(定义了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)

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

在我看来,这看起来像是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

正确的方法是

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

请注意,qf(alp, DF1, DF2, FALSE)FALSE传递给qf()的第四个参数,该参数是ncp而不是lower.tail

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

也就是说,如果要将值 3 分配给变量x,则可以编写x<-3x=3

当你写:LT <- left.tail=FALSE时,不是测试left.tail是否为FALSE(你会用比较运算符==来做),而是在设置一个双重赋值——即将值FALSE分配给left.tailLT。如果您使用相同的运算符,您实际上可以这样做:x=y=4k<-d<-5都按预期工作。但是,如果混合使用这些运算符,则会出现错误。

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

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

相关内容

  • 没有找到相关文章

最新更新