SAS:不使用PROC转置的转置?

SAS:不使用PROC转置的转置?,sas,transpose,Sas,Transpose,我有这样的SAS数据 dog cat mice camel pigeon cow goat fish horse donkey monkey lion rat DOG CAT MICE CAMEL PIGEON COW GOAT FISH HORSE DONKEY MONKEY LION RAT 非大写名称是列名。大写字母是观察值 AnimalName LastAlpha DOG G CAT T MICE E CAMEL L PIGEON

我有这样的SAS数据

dog cat mice camel pigeon cow goat fish horse donkey monkey lion rat
DOG CAT MICE CAMEL PIGEON COW GOAT FISH HORSE DONKEY MONKEY LION RAT
非大写名称是列名。大写字母是观察值

AnimalName LastAlpha
DOG        G
CAT        T
MICE       E
CAMEL      L
PIGEON     N
COW        W
GOAT       T
FISH       H
HORSE      E
DONKEY     Y
MONEKY     Y
LION       N
RAT        T
我想在不使用PROC转置函数的情况下生成如下表。列名是AnimalName和LastAlpha。LastAlpha是动物名称观察的最后一个字母表

AnimalName LastAlpha
DOG        G
CAT        T
MICE       E
CAMEL      L
PIGEON     N
COW        W
GOAT       T
FISH       H
HORSE      E
DONKEY     Y
MONEKY     Y
LION       N
RAT        T

我试图使用数组函数来制作这个表,但没有成功。如果您能帮忙,我将不胜感激。

这对我来说很有用。如果您正在寻找,请告诉我:

DATA Want;
set Have;
array x{*} _character_;
keep AnimalName LastAlpha;
do i =1 to dim(x);
AnimalName = x[i];
LastAlpha =   substr(AnimalName,length(AnimalName),1);
output;
end;
run;

这对我有用。如果您正在寻找,请告诉我:

DATA Want;
set Have;
array x{*} _character_;
keep AnimalName LastAlpha;
do i =1 to dim(x);
AnimalName = x[i];
LastAlpha =   substr(AnimalName,length(AnimalName),1);
output;
end;
run;

让我们将您的示例制作成一个数据集

data have;
  input (dog cat mice camel pigeon cow goat fish horse donkey monkey lion rat) ($);
cards;
DOG CAT MICE CAMEL PIGEON COW GOAT FISH HORSE DONKEY MONKEY LION RAT
;
现在让我们来制作您的输出

data want ;
  set have ;
  array list _character_ ;
  do i=1 to dim(list);
     AnimalName = list(i);
     LastAlpha = char(AnimalName,length(AnimalName));
     output;
  end;
  keep AnimalName LastAlpha;
run;

让我们将您的示例制作成一个数据集

data have;
  input (dog cat mice camel pigeon cow goat fish horse donkey monkey lion rat) ($);
cards;
DOG CAT MICE CAMEL PIGEON COW GOAT FISH HORSE DONKEY MONKEY LION RAT
;
现在让我们来制作您的输出

data want ;
  set have ;
  array list _character_ ;
  do i=1 to dim(list);
     AnimalName = list(i);
     LastAlpha = char(AnimalName,length(AnimalName));
     output;
  end;
  keep AnimalName LastAlpha;
run;