2016-12-15 4 views
0

私はこのようなSASデータを持っています。SAS:PROC TRANSPOSEを使用しないTRANSPOSE?

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 

非資本名は列名です。大文字は観測です。

そして、PROC TRANSPOSE機能を使用せずに以下のようなテーブルを作りたいと思います。列名はAnimalNameとLastAlphaです。 LastAlphaはAnimalNameの観測の最後のアルファベットです。

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 

このテーブルを作成するのにARRAY機能を使用しようとしましたが、運がありませんでした。あなたが手伝っていただければ幸いです。

答えて

2

あなたの例をデータセットにしましょう。

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; 
+0

これは素晴らしい作品です!とてもありがとう@トム!!! – yusuke0426

1

これは私の仕事です。

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; 
+0

これはまさに私が欲しかったものです!ありがとう@DCR !!! – yusuke0426

関連する問題