找到你需要的数据

在上一篇《提出你的研究问题》中,我们选定 NESARC 数据集,想研究的问题是尼古丁依赖。我们想知道尼古丁依赖是否和吸烟有关?也想知道,要吸多少烟才会产生尼古丁依赖?

如之前所说,需要查看我们的 Codebook 中有多少变量是和我们的研究相关的。观察Codebook 后,跟我们的问题相关的变量有:过去12个月是否香烟依赖(TAB12MDX),过去12个月是否吸烟(CHECK321),平时的吸烟频率(S3AQ3B1),平时的吸烟数量(S3AQ3C1)等等。我们现在想做的是:把这些变量筛选出来,进行分析,看看吸烟频次和数量,是否和尼古丁依赖正相关。

听起来很简单,但是在这之前,我们还要做一些筛选工作,比如要在数据中筛选出过去年龄为18-25岁的,过去12个月内有吸烟的人做研究。

为什么要筛选呢?可以理解成,因为数据覆盖的范围越大,有可能对结果产生干扰因素的变量就越多,如果我们为了找到两个因素是否彼此是相关的,最理想的情况是整个样本的其他参数都是一样的,只有这两个因素有变化,当然,这在现实中是不可能的。所以我们只能尽量的去控制样本的一致性,年龄可能是一个影响因素,我们就只选定18-25的年轻人,而过去吸烟现在不吸烟这样的数据也许对我们有干扰,所以我们把他们去除掉。

这就是我们将要学习的第一段 SAS 程序代码!

LIBNAME mydata "/courses/d1406ae5ba27fe300 " access=readonly;

DATA new; set mydata.nesarc_pds;

LABEL TAB12MDX="Tobacco Dependence Past 12 Months"            CHECK321="Smoked Cigarettes in Past 12 Months"            S3AQ3B1="Usual Smoking Frequency"     
    S3AQ3C1="Usual Smoking Quantity";
    
/*subsetting the data to include only past 12 month smokers, age 18-25*/
    IF CHECK321=1;
    IF AGE LE 25;
PROC SORT; by IDNUM;
PROC FREQ; TABLES TAB12MDX CHECK321 S3AQ3B1 S3AQ3C1 AGE;
RUN;

它的功能是:

  1. 建立一个叫做 mydata 的逻辑库;
  2. 读取 nesarc_pds 的数据;
  3. 将不同的数据分别加上标签;
  4. 筛选数据;
  5. 将数据按照 IDNUM 排序,并保存到新的数据集;
  6. 查看其中几个变量的频数;

我来一个一个解释下:

  1. 建立一个叫做 mydata 的逻辑库;
LIBNAME mydata "/courses/d1406ae5ba27fe300 " access=readonly; 

Libname 指“Library Name”,可以告诉 SAS 去哪里找数据,mydata就是 library 的名称,引号内的则是数据文件所保存的路径,access=readonly'Libname 的一个设置,设置成只读后我们的操作就不会对数据本身造成影响,结尾的分号,是 SAS 语句的结尾,每一句 SAS 语句都需要用分号结束。

SAS 会建立一个 Library,并命名为 mydata,这个逻辑库在硬盘中的保存位置是“/courses/d1406ae5ba27fe300 ”,可以通过 mydata.数据集名来指定具体的数据集。

  1. 读取 nesarc_pds 的数据;
DATA new; set mydata.nesarc_pds;

DATA在 SAS 中是很常用的功能,也叫做 Data Step,可以用来处理数据;

new是新的数据集的名称;

SET在 Data Step 中,可以告诉 SAS 我们需要分析的数据集的名称,并在运行时加载这个数据集;

开启一个 DataStep,同时指定新的数据集名称为 New,保存在默认的 work libraray。

读取mydata.narc_pds 这个数据集;

  1. 将不同的数据分别加上标签;
LABEL TAB12MDX="Tobacco Dependence Past 12 Months"            CHECK321="Smoked Cigarettes in Past 12 Months"
     S3AQ3B1="Usual Smoking Frequency"     
     S3AQ3C1="Usual Smoking Quantity";

Label 命令在 Data Step 中可以为变量设置不同的标签;

SAS 的数据集中, 每个变量可以保存它的 Name、Type(数字或文本)、Length、Label、Format(格式)、Informat 六个属性信息;

因为原始的变量名字,很难记住具体的所反应的意义,所以,通过修改标签的方式,让我们在观察报告的时候,更清楚的知道每个变量所指代的数据是什么一意义。

  1. 筛选数据;

    IF CHECK321=1;
    IF AGE LE 25;

通过 IF条件,来筛选出合适的数据集;这里可以使用 Where;

  1. 将数据按照 IDNUM 排序,并保存到新的数据集;
PROC SORT; by IDNUM;

Proc Step 是 SAS 的两种程序处理方式的之一,一种是上面提到的 Data Step,用来处理数据集,另一种这是这样的 Proc Step,用来对数据进行分析和报告;

Proc Sort 的功能是给数据集排序,如果是单独使用的话,代码是:

Proc Sort Data=work.new;by IDNUM;run;

这里因为写在了 Data Step 里,因此省略了 制定 Data 的选项,同时在最后有不用写 run;

  1. 查看其中几个变量的频数;
PROC FREQ; TABLES TAB12MDX CHECK321 S3AQ3B1 S3AQ3C1 AGE;
RUN;

Proc Freq 可以用来查看变量的频数分布,使用方法是,在具体想要查看的变量之前加上 Tables 就可以啦;

部分结果:

可以看到Proc Freq 显示了 Label:"Tobacco Dependence Past 12 Months",并记录了 TAB12MDX 这个变量,即"过去12个月是否有尼古丁依赖"(0或1代表有或没有)两个值的频率分布,以及累积频率。

仅仅从这个表中,我们能判断的信息还是非常有限的,因为数据可能还需要进一步处理,比如,有些变量不止有0和1,那是怎么回事?


相关文章:

学习数据分析却没有合适的数据集?
提出你的研究问题
安装 SAS Studio

参考资料:

数据管理与可视化 - 卫斯连大学

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270