R FUN(newX[,i],…)中出错:找不到函数“sim”
我试着用一本书来学习R。我试着做一个例子,其中对于矩阵的每一行,向量的对应元素将是1或0,这取决于 该行中的前d个元素为1或0。使用的代码是:-R FUN(newX[,i],…)中出错:找不到函数“sim”,r,R,我试着用一本书来学习R。我试着做一个例子,其中对于矩阵的每一行,向量的对应元素将是1或0,这取决于 该行中的前d个元素为1或0。使用的代码是:- copymaj <- function(rw,d) { maj <- sum(rw[1:d]) / d return(if(maj > 0.5) 1 else 0) } x [,1] [,2] [,3] [,4] [,5] [1,] 1 0 1 1 0 [2,] 1 1
copymaj <- function(rw,d) {
maj <- sum(rw[1:d]) / d
return(if(maj > 0.5) 1 else 0)
}
x
[,1] [,2] [,3] [,4] [,5]
[1,] 1 0 1 1 0
[2,] 1 1 1 1 0
[3,] 1 0 0 1 1
[4,] 0 1 1 1 0
apply(x,1,copymaj,3)
它显示了上述错误。同样,如果我使用applyx,1,copymaj3,仍然会显示错误
已安装R 2.13
请帮忙 正如@BenBarnes指出的,你可能拼错了sum,我认为你写的是sim而不是sum 我可以通过以下操作重现您的错误:
copymaj0 <- function(rw,d) {
maj <- sim(rw[1:d]) / d # here you have sim, this causes the error
return(if(maj > 0.5) 1 else 0)
}
copymaj1 <- function(rw,d) {
maj <- sum(rw[1:d]) / d # here you have sum which works well for me
return(if(maj > 0.5) 1 else 0)
}
x <- matrix(c(1,0,1,1,0,
1,1,1,1,0,
1,0,0,1,1,
0,1,1,1,0), ncol=5, byrow=TRUE)
apply(x,1,copymaj0,3) # prints error
Error in FUN(newX[, i], ...) : could not find function "sim"
apply(x,1,copymaj1,3) # works well
[1] 1 1 0 1
我真的认为你把sum拼错了
applyx,1,copymaj13不起作用,因为如果你阅读?apply你会看到的
applyX,MARGIN,FUN,…,然后applyX,1,copymaj13将产生一个错误,因为
... 在丢失的情况下,将参数替换为FUN d=3。为了给你的乐趣传递可选的参数,你必须使用。。。正如在applyx,1,copymaj1,3中所述,但不使用applyx,1,copymaj13。正如@BenBarnes所指出的,你可能拼错了sum,我认为你写的是sim而不是sum 我可以通过以下操作重现您的错误:
copymaj0 <- function(rw,d) {
maj <- sim(rw[1:d]) / d # here you have sim, this causes the error
return(if(maj > 0.5) 1 else 0)
}
copymaj1 <- function(rw,d) {
maj <- sum(rw[1:d]) / d # here you have sum which works well for me
return(if(maj > 0.5) 1 else 0)
}
x <- matrix(c(1,0,1,1,0,
1,1,1,1,0,
1,0,0,1,1,
0,1,1,1,0), ncol=5, byrow=TRUE)
apply(x,1,copymaj0,3) # prints error
Error in FUN(newX[, i], ...) : could not find function "sim"
apply(x,1,copymaj1,3) # works well
[1] 1 1 0 1
我真的认为你把sum拼错了
applyx,1,copymaj13不起作用,因为如果你阅读?apply你会看到的
applyX,MARGIN,FUN,…,然后applyX,1,copymaj13将产生一个错误,因为
... 在丢失的情况下,将参数替换为FUN d=3。为了给你的乐趣传递可选的参数,你必须使用。。。与applyx,1,copymaj1,3一样,但不使用applyx,1,copymaj13。applyx,1,copymaj,3命令对我有效。也许sum拼错了?否则我知道arm软件包中有一个功能sim卡。可能是这样。奇怪的是,代码在R studio中运行。命令applyx,1,copymaj,3适合我。也许sum拼错了?否则我知道arm软件包中有一个功能sim卡。可能是这样。奇怪的是,代码在R studio中工作。谢谢。这可能就是问题所在。但是它的总数和它在Rstudio中的工作,而不是在R GUI中。谢谢。这可能就是问题所在。但是它的总和以及它在Rstudio中的工作,而不是在R GUI中。