我還有一個更快的問題。我現在有一個相當大的數據集,如下所示:SAS:轉換轉置或SQL?
Rank Count Score
1 100 10
Romeo & Juliet . .
Shakespeare . .
我需要以某種方式維持軍隊,計數和分(1,100,10)和的名稱創建一個新列書和作者的另一列。
SAS中有這樣做的好方法嗎?我畫空白,任何幫助將不勝感激。謝謝!
我還有一個更快的問題。我現在有一個相當大的數據集,如下所示:SAS:轉換轉置或SQL?
Rank Count Score
1 100 10
Romeo & Juliet . .
Shakespeare . .
我需要以某種方式維持軍隊,計數和分(1,100,10)和的名稱創建一個新列書和作者的另一列。
SAS中有這樣做的好方法嗎?我畫空白,任何幫助將不勝感激。謝謝!
首先,在我給出答案之前,獲得具體答案的關鍵是要求提供一個精確而詳細的問題。
從你的不精確的問題和評論,我想我拼湊你的問題。事實上,這是我過去遇到過的。
您在評論中說,數據是在csv文件中,但您的示例似乎顯示您嘗試導入後的數據。從您的描述中,單一觀察分佈在csv的3行數據中。我假設數據看起來像這樣(我做了第二個OBS):
1,100,10
Romeo & Juliet
Shakespeare
2,90,9
The Old Man and the Sea
Hemingway
這裏的數據步讀取文件的結構。
data books;
infile '/folders/myfolders/books.csv' dlm=',' n=3 truncover;
input rank score count #2 book $50. #3 author $30.;
run;
首先,讓我解釋infile
聲明中的選項。選項n=3
指定在輸入緩衝區中有3行輸入數據可用,這些輸入數據對應於組成單個obs所需的行數。我們將在input
聲明中利用此選項。選項truncover
可確保SAS不會繼續讀取超出行尾的變量值小於指定長度的變量。例如,這個選項允許我爲書名分配50個字符長度的信息,即使書名比這個短很多。
讓我們繼續討論input
聲明。由於每個3線組的第一行都是標準的,逗號分隔的數據,因此讀取排名,得分和計數無需特殊。 #2
表示告訴SAS轉移到三線組的第二行來閱讀書名。當然,#3
將行指針移動到3行組的最後一行以讀取最終的變量作者。
下面是最終輸出的樣子:
你的數據結構是沒有意義的。 –
進一步解釋你的問題。是說大數據集是文本文件還是當前的SAS數據集?你有什麼,你想要它看起來像什麼? – Reeza
這就是我收到的數據的樣子,以及爲什麼我需要以如下方式進行轉換: 排名計分分數標題作者 Reeza - 數據是一個csv,我將其導入到SAS中以製作成數據集我實際上可以使用。 – conniffac