在SAS中提取2列并附加为行

在SAS中提取2列并附加为行,sas,transpose,data-cleaning,merging-data,Sas,Transpose,Data Cleaning,Merging Data,我在SAS中有两个数据集。第一个看起来像这样,假设它被称为数据1,我只关心其中的两列 …第二个数据集(我们称之为data 2)如下所示: …我试图提取第一个数据集的第二列并将其插入第二个数据集中,以实现如下效果: 基本问题描述: 我试图从SAS中的数据集中提取两列,并将它们作为行添加到第二个数据集中。第一个数据集中的变量名位于其自己的名为“变量名”的列中,而在第二个数据集中,每个变量都是一个列标题,一个本身带有相应数据的变量。我提供的图像过于简单,因为实际数据本身非常长。 基本上,我试图在SAS

我在SAS中有两个数据集。第一个看起来像这样,假设它被称为数据1,我只关心其中的两列

…第二个数据集(我们称之为data 2)如下所示:

…我试图提取第一个数据集的第二列并将其插入第二个数据集中,以实现如下效果:

基本问题描述:

我试图从SAS中的数据集中提取两列,并将它们作为行添加到第二个数据集中。第一个数据集中的变量名位于其自己的名为“变量名”的列中,而在第二个数据集中,每个变量都是一个列标题,一个本身带有相应数据的变量。我提供的图像过于简单,因为实际数据本身非常长。 基本上,我试图在SAS中找到允许我这样做的函数

我试过的

-我尝试使用proc sql将前两列提取为表,使用数据步骤将它们转换为数据帧,对它们进行排序,然后使用proc transpose尝试将它们从长到宽转换,然后尝试使用某种append函数将它们附加到第二个数据集,但append不起作用

-我曾尝试合并这两个集合,但在使用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;

你好请以文本而非图像形式插入数据;图像可以作为辅助项目,但不应该是理解文章的关键。谢谢嗨,乔,这些图片是100%补充的。事实上,如果你读了这个问题,我只想推荐函数。下一次,我将把更多的注意力放在这篇文章中我指定我不是故意使用可复制数据的部分。谢谢坦率地说,您需要包括示例数据。这是对本网站帖子的期望;搜索MCVE以获取更多信息。哦,太好了!谢谢我想我会参考SAS社区了解SAS问题。非常感谢你,汤姆!我会再试一次,看看会发生什么。