sas - 带有proc sql的R Markdown SAS代码块未按预期执行
问题描述
我正在使用 R Markdown 创建一个 SAS proc sql 教程,但我发现了几个实例,其中 proc sql 的代码块没有按预期工作。
首先, outobs=N 和 inobs=N 选项不会计算并导致此错误:
Error in engine(options) : Calls: <Anonymous> ... process_group.block -> call_block -> block_exec -> in_dir -> engine
In addition: Warning message: In system2(cmd, code, stdout=TRUE, stderr= TRUE, eng = options$engine.env): running command '"C:/Program Files/SASHome/SASFoundation/9.4/sas.exe" sas3afc64d1332b.sas -nosplash -ls 75' had status 1
接下来,匹配似乎在 proc sql 代码块中不起作用。我在 R Markdown 中尝试了子查询和完全连接但没有成功,而相同的代码在基本 SAS 中工作。
可重现的代码:
require(knitr)
require(SASmarkdown)
saspath <- "C:/Program Files/SASHome/SASFoundation/9.4/sas.exe"
sasopts <- "-nosplash -ls 75"
/*filter with a subquery*/
data roster;
input Person $;
datalines;
Tiffany
Tiffany
Barbara
Henry
Carol
Jane
Tiffany
Ronald
Thomas
William
William
Henry
Carol
Carol
Ronald
Thomas
;
proc sql;
title "Subquery";
select *
from sashelp.class
where Name in
(select distinct Person
from roster);
quit;
proc sql;
title "Full join";
select *
from sashelp.class a full join roster b
on a.Name = b.Person;
quit;
对于上面的子查询,R Markdown 中的日志结果表明没有选择任何行。完全连接的结果是:
## Name Sex Age Height Weight Person
## -----------------------------------------------------
## . . . Barbara
## . . . Carol
## . . . Carol
## . . . Carol
## . . . Henry
## . . . Henry
## . . . Jane
## . . . Ronald
## . . . Ronald
## . . . Thomas
## . . . Thomas
## . . . Tiffany
## . . . Tiffany
## . . . Tiffany
## . . . William
## . . . William
## Alfred M 14 69 112.5
## Alice F 13 56.5 84
## Barbara F 13 65.3 98
## Carol F 14 62.8 102.5
## Henry M 14 63.5 102.5
## James M 12 57.3 83
## Jane F 12 59.8 84.5
## Janet F 15 62.5 112.5
## Jeffrey M 13 62.5 84
## John M 12 59 99.5
## Joyce F 11 51.3 50.5
## Judy F 14 64.3 90
## Louise F 12 56.3 77
## Mary F 15 66.5 112
## Philip M 16 72 150
## Robert M 12 64.8 128
## Ronald M 15 67 133
## Thomas M 11 57.5 85
## William M 15 66.5 112
所以看起来 proc sql 只是不匹配 Name/Person 列?我已经尝试了 strip() 函数以确保空格不是问题。
同样,如果我在 SAS 中运行这些代码片段,则子查询和连接都可以正常工作。提前感谢您深入了解为什么此代码无法按预期工作!
解决方案
推荐阅读
- python - KFold 将拆分数量解压缩为相同数量的变量,而不是只有 2 个
- wordpress - 如何在 wordpress 主题中找到隐藏代码
- python - Python Pandas:如何更新 groupby 中其他列的值?
- c++ - std::is_class 在引用类上为假
- firebase - 为什么在 Firestore 中写入 1 个文档需要 +30 次读取?
- python - 如何在 Python Pandas 中将多行更改为单行
- go - 使用 jwt-go 库 - 密钥类型无效
- python - 如果键不存在,则将字典值映射到列表并返回原始值
- regex - 正则表达式确定图像文件是否从 Facebook 下载
- swift - 如何转换绑定
绑定 ?