提取 2 列并附加为 SAS 中的行
Extract 2 Columns and Attach as Rows in SAS
我在 SAS 中有两个数据集。第一个看起来像这样(假设它叫做 data 1(我只关心它的两列)
...第二个数据集(假设它称为 data 2)如下所示:
...我正在尝试提取第一个数据集的第二列并将其插入到第二个数据集中,以实现如下所示:
基本问题描述:
我正在尝试从 SAS 中的数据集中提取两列并将它们作为行添加到第二个数据集中。第一个数据集中的变量名称位于它们自己的一列中(标题为 'variable name'),而在第二个数据集中,每个变量都是一个包含相应数据的列 header(本身就是一个变量)。我提供的图像过于简单,因为实际数据本身很长。
基本上,我试图在 SAS 中找到允许我这样做的函数。
我试过的
-我尝试使用 proc sql 将前两列提取为 table,然后使用数据步骤将它们转换为数据框,对它们进行排序,然后使用 proc transpose 尝试将它们从长转换为宽,然后尝试使用某种追加函数将它们附加到第二个数据集,但追加不起作用。
-我试过合并这两个集合,但是使用proc转置后合并似乎不起作用。
-我也试过转置第二个数据集然后合并它们,这有效(出于某种原因)但后来我无法转置数据(以便我可以分析它,这是我的目的做所有这些)。
我会用什么函数来完成这个过程?
抱歉没有提供可复制的数据,我更多的是寻找功能的建议而不是详细的硬性解决方案。
要强制 PROC TRANSPOSE 使用变量作为新变量名称的来源,请使用 ID 语句。所以如果你有第一个数据集:
data tall;
input fruit $ count @@;
cards;
APPLE 1 PEACH 2 PEAR 2
;
您可以使用此代码进行转换。
proc transpose data=tall out=wide;
id fruit;
var count;
run;
然后,如果您有另一个数据集,其中已经包含变量 APPLE、PEACH、PEAR 等,则只需将两者设置在一起即可。
data want;
set wide have ;
run;
我在 SAS 中有两个数据集。第一个看起来像这样(假设它叫做 data 1(我只关心它的两列)
...第二个数据集(假设它称为 data 2)如下所示:
...我正在尝试提取第一个数据集的第二列并将其插入到第二个数据集中,以实现如下所示:
基本问题描述:
我正在尝试从 SAS 中的数据集中提取两列并将它们作为行添加到第二个数据集中。第一个数据集中的变量名称位于它们自己的一列中(标题为 'variable name'),而在第二个数据集中,每个变量都是一个包含相应数据的列 header(本身就是一个变量)。我提供的图像过于简单,因为实际数据本身很长。 基本上,我试图在 SAS 中找到允许我这样做的函数。
我试过的
-我尝试使用 proc sql 将前两列提取为 table,然后使用数据步骤将它们转换为数据框,对它们进行排序,然后使用 proc transpose 尝试将它们从长转换为宽,然后尝试使用某种追加函数将它们附加到第二个数据集,但追加不起作用。
-我试过合并这两个集合,但是使用proc转置后合并似乎不起作用。
-我也试过转置第二个数据集然后合并它们,这有效(出于某种原因)但后来我无法转置数据(以便我可以分析它,这是我的目的做所有这些)。
我会用什么函数来完成这个过程?
抱歉没有提供可复制的数据,我更多的是寻找功能的建议而不是详细的硬性解决方案。
要强制 PROC TRANSPOSE 使用变量作为新变量名称的来源,请使用 ID 语句。所以如果你有第一个数据集:
data tall;
input fruit $ count @@;
cards;
APPLE 1 PEACH 2 PEAR 2
;
您可以使用此代码进行转换。
proc transpose data=tall out=wide;
id fruit;
var count;
run;
然后,如果您有另一个数据集,其中已经包含变量 APPLE、PEACH、PEAR 等,则只需将两者设置在一起即可。
data want;
set wide have ;
run;