首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“找不到函数<-<-”,但我没有使用该函数

“找不到函数<-<-”,但我没有使用该函数
EN

Stack Overflow用户
提问于 2022-02-04 15:41:53
回答 3查看 175关注 0票数 0

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

代码语言:javascript
复制
    LT <- left.tail=FALSE
    q <- qf(alp, DF1, DF2, LT)
    q

我得到的是:

代码语言:javascript
复制
     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的真/假值?

为了进一步解释,我试图编写一段代码,在其中我只需输入顶部的值并从中得到答案:

代码语言:javascript
复制
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)

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

EN

回答 3

Stack Overflow用户

发布于 2022-02-04 17:28:32

在我看来,这就像是R中的一个解析器的奇怪之处。

代码语言:javascript
复制
 LT <- left.tail=FALSE

被解析为

代码语言:javascript
复制
 (LT <- left.tail) = FALSE

这和

代码语言:javascript
复制
 `<-`(LT, left.tail) = FALSE

这和

代码语言:javascript
复制
 `<-<-`(LT, left.tail, FALSE)

这就是你的错误信息的来源。

我说这是一个奇怪的现象,因为我原以为它会被解析成

代码语言:javascript
复制
LT <- left.tail <- FALSE

它将FALSE分配给left.tail,然后分配给LT

票数 2
EN

Stack Overflow用户

发布于 2022-02-04 15:56:21

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

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

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

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

代码语言:javascript
复制
LT <- left.tail <- FALSE

在你的情况下,我认为你不想做双重任务。很可能,您希望测试left.tail是否为FALSE,并将结果存储在LT中。你可以用几种方式做到这一点:

代码语言:javascript
复制
# Tests for only FALSE values
LT <- left.tail==FALSE
LT <- isFALSE(left.tail)

# Tests for "falsy" values like 0
LT <- !left.tail
票数 0
EN

Stack Overflow用户

发布于 2022-02-04 18:08:00

正确的方法是

代码语言:javascript
复制
qf(p = alp, df1 = DF1, df2 = DF2, lower.tail = FALSE)

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70989067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档