如何在SAS中使用实数/数值作为变量?
我想知道如何使用实数变量作为变量名。 比如说如何在SAS中使用实数/数值作为变量?,sas,boxplot,sgplot,Sas,Boxplot,Sgplot,我想知道如何使用实数变量作为变量名。 比如说 data have; input Y 0.133 0.124 0.1242 0.142 ; datalines; 123 121 214 241 241 431 143 141 241 124 214 124 214 142 241 531 432 134 412 124 243 124 134 134 1
data have;
input
Y 0.133 0.124 0.1242 0.142 ;
datalines;
123 121 214 241 241
431 143 141 241 124
214 124 214 142 241
531 432 134 412 124
243 124 134 134 123
;
proc transpose data=have out=tall (rename=col1=x);
by y notsorted;
var /* what should I put here? */;
run;
ods html file='hbox-plot.html';
proc sgplot data=tall;
hbox x / category=y;
yaxis type=linear;
run;
ods html close;
试图在proc transponse中使用var选择中的实际值,我得到了一个错误:syntax error。
我的预期输出是方框图,在x轴上,我有基于上述实际值的信息,在y轴上,我有基于y轴的信息。不确定您试图实现什么,但如果您想消除由于变量名而导致的语法错误,以下操作应该可以
data have;
input
Y "0.133"n "0.124"n "0.1242"n "0.142"n ;
datalines;
123 121 214 241 241
431 143 141 241 124
214 124 214 142 241
531 432 134 412 124
243 124 134 134 123
;
proc transpose data=have out=tall(rename=(col1=x _name_=var));
by y notsorted;
var "0.133"n "0.124"n "0.1242"n "0.142"n;
run;
字母“n”用于区分带引号的字符串和名称文字值。
您可能还想更深入地了解该选项和。不要将数据放入名称中。不要试图创建名为0.133的变量,而是将0.133的值放入变量中 另一种表示数据网格的方法是,用三个变量对每个单元格进行一次观察。一个用于垂直索引,一个用于水平索引,第三个用于将值存储在两个索引的交点处的单元格中
data have;
input y @;
do x=0.133,0.124,0.1242,0.142 ;
input z @;
output;
end;
datalines;
123 121 214 241 241
431 143 141 241 124
214 124 214 142 241
531 432 134 412 124
243 124 134 134 123
;
谢谢你,克米特。我希望得到类似的输出:。我用数值代替x1-x4。不幸的是,在x轴上,我看到的可能是近似值,而不是我在文章中提到的值,这使得很难理解图表。这在很大程度上违反了整洁的数据原则,并且由于某种原因不受支持……使用变量存储数据,然后根据需要引用它们。如果某个值发生更改,那么您需要更新所有代码来更改它。不幸的是,我有这些数据。我无法更改原始数据。如果您感兴趣,我提出了一个关于如何使用proc转置(或其他方法)操作表以获得特定输出的新问题。