本人正在做一个蒙特卡罗试验,
现在要统计显著系数的个数,于是用了这个命令
sig <-ifelse(t.ols>1.96,1,0)
在1000次循环中,如果OLS估计的t -test 值大于1.96,就赋值1,否则就是0,然后统计所有1的总数.
但是意识到t test 值小于-1.96的情况没有考虑进去,但是用"和"命令又不成功,请问怎么解决这个问题?
正确的命令应该怎么写呢,thx a lot!
[此贴子已经被作者于2008-3-9 10:25:49编辑过]
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
我不知道你说的用"和"命令不成功是什么意思.
但是.
顺着你这个思路继续下去就可以了
你先把大于1.96的个数得到
sig[j] <-ifelse(t.ols<-1.96,1,0)
在统计这个为1的个数
然后两个数据加总不就可以了.
我试验了两种方法,一个是像你说的,再写一行< -1.96的命令,结果运行出错,
另一个是把命令改成 〉1.96 and < -1.96,还是不行,好像if 命令里面的条件不能超过一个。
我现在是这么做的:sig <-ifelse (abs(t.ols)> 1.96,1,0)
用这么绝对值命令好像是可行的。
谢谢回复!
但是用"和"命令又不成功
另一个是把命令改成 〉1.96 and < -1.96,有意思了。
这是你的两次回复。
虽然你问题解决了
但是我还是要告诉你。
在R里,和运算不是and
难怪你会出错。
R的和运算是&
你再试试这个,
最后
也感谢你给我提供了一种方法,
取绝对值
好主意
多谢!!!
我都被你搞晕了
搞的我自己都不知道怎么回事了
刚刚反应过来
你这个问题怎么是用“和”运算呢。
因为你要选出所有小于-1.96和大于1.96的个数。
你想一下,
如果用“和”运算,一个数字怎么可能既小于-1.96又大于1.96呢,
所以~~~~~~~嘿嘿
这个是用“或”运算
如下:
> x<-1:10> y<-ifelse(x<3|x>7,0,1)> x [1] 1 2 3 4 5 6 7 8 9 10> y [1] 0 0 1 1 1 1 1 0 0 0
嗯,你的方法也没有报错,应该是可行的.
小妹是初学者,以后有什么问题还烦请大哥指教则个!
这厢有礼了!