我正在使用数据集LearnBayes
.对于那些想要查看实际数据的人:
install.packages('LearnBayes')
Run Code Online (Sandbox Code Playgroud)
我试图根据列中的值过滤掉行.例如,如果列值是"water",那么我想要那一行.如果列值是"牛奶",那么我不想要它.最终,我试图过滤掉所有饮用色谱柱都是"水"的人.
我的首要问题是,R如何在WLS案例中计算R ^ 2?它不仅仅对观测值进行加权,然后计算R ^ 2.为了解决这个问题,我正在浏览源代码,直到我在代码中遇到这个问题lm.wfit
:
z <- .Call(C_Cdqrls, x *wts, y*wts, tol)
Run Code Online (Sandbox Code Playgroud)
在这做什么?有谁知道如何访问代码以获取详细信息?即,返回的是z
什么?如何C_Cdqrls
,x*wts
,y*wts
,tol
被使用?
到目前为止我所理解的(我不确定它是否正确),这.Call
意味着R在C中执行此代码.但是,如果可能的话,我想看看如何在C中完成此操作.
谢谢!
在下面的代码中,我不是以p = 0.01开始然后递增它,而是希望能够执行类似p =(1:99)/ 100的操作,然后循环执行p.例如,代替p = 0.01,让我们让p =(1:99)/ 100.现在,我尝试用p替换我的for循环中的1:99.但是,当我运行代码时,我开始遇到coverage [i]的问题(它返回数字(0)).看起来这应该是相当微不足道的,所以我希望我只是在我的代码中忽略了一些东西.
此外,如果你看到任何容易提高的效率,请随时加入!谢谢=)
w=seq(.01,.99,by=.01)
coverage=seq(1:99)
p=0.01
for (i in 1:99){
count = 0
for (j in 1:1000){
x = rbinom(30,1,p)
se=sqrt(sum(x)/30*(1-sum(x)/30)/30)
if( sum(x)/30-1.644854*se < p && p < sum(x)/30+1.644854*se )
count = count + 1
}
coverage[i]=count/1000
print(coverage[i])
p=p+0.01
}
Run Code Online (Sandbox Code Playgroud) 我在数据帧tmp中有一个元素,可能包含数字,0或NA.如果该元素既不是0也不是NA,我想要发生一些事情.否则,没有任何反应.我想它看起来像这样:
if ( tmp[2, 19] != (0 || NA) ){
do something
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:if(tmp [2,19] ==(0 || NA)){:缺少值需要TRUE/FALSE时出错.我不知道在R中是否不可能将某些东西与int和字符串进行比较,或者我只是使用OR运算符错误.我在不同情况下尝试了不同的变化,但无法确定问题.请帮忙!