Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables SAS:数据集中最高变量的输出_Variables_Sas_Max - Fatal编程技术网

Variables SAS:数据集中最高变量的输出

Variables SAS:数据集中最高变量的输出,variables,sas,max,Variables,Sas,Max,我想从现有的最大n变量中分配一个新变量。 所以如果我们有一个列数不断增加的表- data have; input uid $ var1 $ var2 $ var3 $; datalines; 1111 1 0 1 2222 1 0 0 3333 0 0 0 4444 1 1 1 5555 0 0 0 6666 1 1 1 ; 我想导出变量var3作为最终的_代码 da

我想从现有的最大n变量中分配一个新变量。 所以如果我们有一个列数不断增加的表-

data have;
input uid $ var1 $ var2 $ var3 $;
datalines;                      
1111    1   0   1
2222    1   0   0
3333    0   0   0
4444    1   1   1
5555    0   0   0
6666    1   1   1
;
我想导出变量var3作为最终的_代码

data want;
set have;
final_code = max(of var1-var3);
run;
上面的内容在这里没有意义,因为我只想保留var3列。同样,如果有var4,我只希望有var4


有人想帮我吗?

我想这就是你要找的:

%let n=3
data want;
set have;
var&n = max(of var1-var&n);
drop var1-var%eval(&n-1);
run;
宏变量
&n
保存n的值。这在代码的编译阶段充当替换

DROP
语句告诉数据步骤删除这些变量


%eval()
宏函数对宏值执行整数运算。所以我们从1下降到N-1

我想这就是你想要的:

%let n=3
data want;
set have;
var&n = max(of var1-var&n);
drop var1-var%eval(&n-1);
run;
宏变量
&n
保存n的值。这在代码的编译阶段充当替换

DROP
语句告诉数据步骤删除这些变量


%eval()
宏函数对宏值执行整数运算。所以我们从1下降到N-1

如果我理解正确,您不需要
max
的值,而是来自编号最高的变量的值

有很多方法可以做到这一点,哪种方法取决于变量的命名方式。这是最简单的,如果他们真的按照你说的命名的话

data want;
  set have;
  array var[*] var:;
  final_code = var[dim(var)];
run;

在这里,我们用
var:
创建一个数组,然后使用
dim
选择数组中的最后一个元素(即数组的大小)。

如果我理解正确,您不需要
max
值,而是从编号最高的变量中选择值

有很多方法可以做到这一点,哪种方法取决于变量的命名方式。这是最简单的,如果他们真的按照你说的命名的话

data want;
  set have;
  array var[*] var:;
  final_code = var[dim(var)];
run;

在这里,我们用
var:
创建一个数组,然后使用
dim
选择数组中的最后一个元素(即数组的大小)。

如果n=12,我仍然希望从#var3中获得值,会怎么样@多帕兹,谢谢你的帮助。我不确定我是否完全理解你的要求。你能更详细地解释一下吗?根据上面的评论,@joe answer就是你要找的。如果n=12,我仍然需要#var3的值怎么办@多帕兹,谢谢你的帮助。我不确定我是否完全理解你的要求。你能更详细地解释一下吗?根据上面的评论@joe answer就是你要找的。你只需要
var3
中的值?是的。如果有一个var4,我想要var4等等。你的数据集不能有变化的变量数量,所以我怀疑这些解决方案对你的完整数据集不起作用。您能否准确地显示所需的内容和更复杂的相同数据。如果接收到的文件使数据集一次又一次地被替换为越来越多的列,那么?您只需要
var3
中的值?是。如果有一个var4,我想要var4等等。你的数据集不能有变化的变量数量,所以我怀疑这些解决方案对你的完整数据集不起作用。您能否准确地显示所需的内容和更复杂的相同数据。如果接收到的文件使数据集一次又一次地被替换为越来越多的列,那么?