sas - 如何从库中的所有表中提取一些信息?
问题描述
如何 PROC SQL 从名为DATA_IN的库中提取信息?
预期信息包括:
表的名称。
表中包含的变体总数。
表中包含的总观察数。
如果该表包含“Subject_ID 或 Visit_Num”,则标记为 1,否则标记为 0。
我做了这样的尝试:
proc sql;
create table table_select as
select libname, memname, nobs, nvar
from dictionary.tables
where libname = 'DATA_IN'
order by nobs descending
;
但仍然不知道如何判断一个表是否包含“Subject_ID 或 Visit_Num”列,并将其标记为“1”或“0”。
感谢您的帮助!
解决方案
您需要一个DICTIONARY.TABLES
与DICTIONARY.COLUMNS
例子:
proc sql;
create table want (label='sashelp tables with a column named "name" or "MSRP"') as
select
tables.libname
, tables.memname
, tables.nobs
, tables.nvar
, not missing(mark.memname) as has_name_or_msrp
from
DICTIONARY.TABLES
left join
(select distinct memname from DICTIONARY.COLUMNS
where columns.libname = 'SASHELP'
and upcase(columns.name) in ('NAME', 'MSRP')
) as mark
on
tables.memname = mark.memname
where
tables.libname = 'SASHELP'
and memtype = 'DATA' /* restrict to only tables */
order by
nobs descending
;
data _null_;
run;
推荐阅读
- c++ - 最大公因数——返回意义?
- pip - 在 mac virtualenv 上安装气流给出:无法为使用 PEP 517 且无法直接安装的熊猫构建轮子
- javascript - 使用画布 nodeJS 模糊图像
- sql - SQL结合两个查询并试图找到同一交易日相似代码和边的平均价格
- presto - Presto:是 MAX_BY() 确定性的
- python - 如何过滤一行,计算范围并从中找到属于字典中该范围内的相似行?
- c++ - 如何实现/使用:固定大小的动态数组的类(仅在运行时知道)
- python - 为什么我在使用 Python 请求模块向 YouTube API v3 发出 POST 请求时收到“请求缺少所需的身份验证凭据”?
- r - 有没有办法根据另一个变量的第一个字母创建一个逻辑变量?
- excel - 计算具有子字符串的合并单元格