【问题标题】:putting observations in one variable SAS EG将观察结果放入一个变量 SAS EG
【发布时间】:2016-04-11 15:34:36
【问题描述】:

我有一些数据集,例如。

card1    stick2
card3    stick2
card1    stick1
card4    stick1

我需要得到一个带有结果的新变量:(final outdata)

                       new_variable
  card1    stick2      card1,card3 
  card3    stick2      card1,card3
  card1    stick1      card1,card4
  card4    stick1      card1,card4

我需要收集所有卡片的观察结果,每个卡片都包含在一个 new_variable 中

【问题讨论】:

  • 如果您明确声明创建变量的规则会有所帮助。试图从数据中找出它充其量是乏味的。还请发布您尝试遵守 SO 规则的内容。

标签: sas


【解决方案1】:

试试catx 函数

new_variable = catx(',',var1,var2);

来自 SAS 帮助: CATX 函数 - 删除前导和尾随空格,插入分隔符,并返回一个连接的字符串。

[编辑]

您需要按棒排序,在数据步骤中处理,然后合并结果。

proc sort data=have;
by stick;
run;

data new_var;
set have;
by stick;

format new_variable $200.;
retain new_variable;

if first.stick then
   new_variable = "";

new_variable = catx(",",new_variable,card);

if last.stick then 
   output;
run;

data want;
merge have new_var(keep=stick new_variable);
by stick;
run;

【讨论】:

  • 你可以看到不同行的观察结果,它不起作用
  • 那么请编辑您的问题,对您尝试的逻辑进行更多解释。
  • 对不起,我弄错了,我需要收集所有卡片的观察结果,这些卡片的每根棍子都在一个 new_variable 中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-13
  • 2013-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多