【发布时间】:2016-10-28 15:30:41
【问题描述】:
我有成对的数据集(A 和 B),但 A 总是有额外的观察结果在 B 中被完全删除,这导致我丢失了 B 中变量“Seg”的原始值。
例子:
Dataset A Dataset B Desired dataset C:
Seg Fz Seg Fz Seg Fz
1 2.3 1 2.3 1 2.3
2 9.2 2 1.3 2 .
3 1.3 3 0.9 3 1.3
4 11.4 4 .
5 0.9 5 0.9
我需要将 2 个数据集 (A & B) 合并为 1 (C),并将 A 的额外观察值替换为缺失值,以保持“Seg”变量的顺序并获得所需的数据集 C。
有没有简单的方法来做到这一点? 我有 300 对数据集,每对包含 44 个观察值和 4 个变量, 所以我打算把它合并到一个宏或一个 do 循环中。
谢谢你:)
示例代码:
data A;
input Seg Fz;
datalines;
1 2.3
2 9.2
3 1.3
4 11.4
5 0.9
run;
data B;
input Seg Fz;
datalines;
1 2.3
2 1.3
3 0.9
run;
【问题讨论】:
-
您能解释一下如何确定要在数据集 C 中保留哪个值吗?比如为什么缺少 seg 4 但 seg 3 1.3?
-
在数据集 c 为什么缺少 seg 2 但 seg 3 1.3 以及为什么缺少 seg 4 但 seg 5 .9?
-
我会解释@superfluous。该数据来自对患者的临床实验。数据集 A 中(由第三方)删除的观察结果被认为是由于干扰而存在偏差。但是因为我正在处理纵向数据并尝试正确建模相关结构,所以数据的顺序以及缺失的观察结果对我来说非常重要。
-
这没有回答任何一个问题。
-
@DCR 抱歉。我会尽量让自己更清楚。要保留的观察是数据集 B 中的观察。因此,任何包含在 A 中但不在 B 中的观察都将被替换为空值。同时保留 A 中“Seg”变量的值。
标签: merge sas data-manipulation