我知道在RI中可以使用control + r来运行我的程序代码.我想知道SAS中是否有等效的热键?如果没有,有没有办法将一个"编程"成SAS?
所以我试图看看样本大小计算(对于样本大小不等的两个样本独立比例)在SAS中的proc功率和r中的一些样本大小函数之间有多接近.我正在使用加州大学洛杉矶分校网站上的数据.
加州大学洛杉矶分校的网站提供如下参数:
p1 = .3,p2 = .15,功率= .8,零差值= 0,对于双侧测试,假设样本量相等;
对于不相等的样本大小测试,参数是相同的,组1的组权重为1,组2的组权重为2,它们执行的测试是单侧的.
我正在使用r函数
pwr.t.test(n=NULL,d=0,sig.level=0.05,type="two.sample",alternative="two.sided")
Run Code Online (Sandbox Code Playgroud)
从pwr
包中.
因此,如果我输入参数选择作为UCLA网站的第一个示例,我会收到以下错误:
Error in uniroot(function(n) eval(p.body) - power, c(2, 1e+07)) :
f() values at end points not of opposite sign.
Run Code Online (Sandbox Code Playgroud)
这似乎是因为r无法检测到差异.我设置d = .5然后就跑了.SAS会因为太小的差异而给出错误吗?它不在示例中,因为它们的零差也是零.
我在使用时也会收到上述错误
pwr.2p.test(h = 0, n = , sig.level =.05, power = .8)
Run Code Online (Sandbox Code Playgroud)
和
pwr.chisq.test(w =0, N = , df =1 , sig.level =.05, power =.8 ).
Run Code Online (Sandbox Code Playgroud)
我可能正在做一些可怕的错误,但如果假设差异为0,我似乎无法找到一种方法.
我知道SAS和r正在使用不同的方法来计算功率,所以我不应该期望得到相同的结果.我真的只是想看看我是否可以在r中复制proc power结果.
我已经能够得到几乎相同的结果,第一个例子具有相同的样本大小和使用的双面替代方案
bsamsize(p1=.30,p2=.15,fraction=.5, alpha=.05, power=.8)
Run Code Online (Sandbox Code Playgroud)
从Hmisc
包中.但是当他们进行不同样本量的单侧测试时,我无法复制这些测试.
有没有办法在r中复制过程,以便针对不相等的组大小进行单侧样本大小计算?
干杯.
我在SAS中多次运行宏,如下所示:
%mymac(a,b);
%mymac(a,c);
.
%mymac(a,a)
%mymac(a,w);
.
Run Code Online (Sandbox Code Playgroud)
我的程序/宏类似于:
/* begin program here */
data original_data;
set mylib.mydata;
run;
%macro mymac(x,y);
data mydata1;
set original_data;
where school_district="&x";
run;
proc means data=mydata1;
var income;
run;
%mend mymac;
Run Code Online (Sandbox Code Playgroud)
我意识到我忘记了一个分号(如(a,a)中所示)并且SAS似乎并不介意.它运行所有的宏调用没有问题.当我添加分号时,我比较了输出,我看不出有什么区别.
这是正常的,SAS没有丢失分号的错误吗?
我正在尝试创建一个新变量,它是其他变量的总和.应该足够简单,但是如果在计算新变量时使用的变量之一具有缺失值,那么新变量也具有缺失值,当我希望它只是对剩余的非变量求和时缺少变量.例如,数据可能如下所示:
a b c d e
1 . 3 2 6
Run Code Online (Sandbox Code Playgroud)
新变量计算为
newvar=a+b+c+d+e
Run Code Online (Sandbox Code Playgroud)
对于上面的行,SAS返回newvar的缺失值,因为缺少b,当我希望它返回时
newvar=a+c+d+e
Run Code Online (Sandbox Code Playgroud)
作为答案.是否有一种简单的方法让SAS这样做?
我有一个变量,主要是数值,但偶尔会有一个字符偷偷摸摸.因此,变量作为字符存储在SAS中.我希望能够确定此字符变量中的各个值是否为数字.在知道哪些值是数字以及哪些是字符之后,我想创建一个新的(数字)变量,其中字符变量的数值存储为数字,字符值存储为缺失.
这是一个例子.
char_var --> num_var
a .
1 1
2.34 2.34
## .
cat .
Run Code Online (Sandbox Code Playgroud)
我希望能够像下面这样做,但我错过了一个功能来帮助我:
if char_var=is.numeric(char_var) then num_var=char_var;
else num_var=.;
Run Code Online (Sandbox Code Playgroud)
这is.numeric
将是一个能够为我确定这一点的函数.
任何建议表示赞赏.
在旁注中,RI会尝试(可能不正确)编程,如下所示:
mydata$type<-is.numeric(mydata$char_var)
if (mydata$type==1) {mydata$num_var=mydata$char_var} else {mydata$num_var=NA}
mydata$num_var<-as.numeric(mydata$num_var)
Run Code Online (Sandbox Code Playgroud) 我想将一个csv文件读入SAS,但我只想读取部分文件.例如,我希望我的第一行数据从第18行开始,而我想在第9,11,12,13,19,20,36列中读取.是否有一种在数据步骤中手动执行此操作的有效方法读入我想要的文件部分,或者我最好选择使用导入向导读取整个文件并保留欲望列?
我正在将 csv 文件读入 r (使用选项blank.lines.skip=T
)。它有一些字符、数字和因子变量。当 r 读入文件时,某些单元格被赋予 NA,而其他单元格则留空。似乎只有包含所有数字数据的列才给出 NA,而包含其他类型数据的列则保留为空白。我的数据集太大,无法手动检查所有这些。我的数据中有很多列和行,并且不确定为什么有些单元格得到 NA 而其他单元格却没有,除非这是设计使然。任何建议表示赞赏。干杯。