Sas: różnica między put i input
Możesz używać funkcji PUT i INPUT w SAS-ie, aby konwertować zmienne na różne typy danych.
Oto różnica między tymi dwiema funkcjami:
Funkcja PUT przyjmuje jako dane wejściowe zmienne znakowe lub numeryczne i zawsze wyprowadza zmienne znakowe .
Funkcja INPUT przyjmuje jako dane wejściowe wyłącznie zmienne znakowe i może wyprowadzać zmienne znakowe lub numeryczne .
Poniższe przykłady pokazują dwa typowe sposoby wykorzystania w praktyce funkcji PUT i INPUT .
Przykład 1: Użycie PUT do konwersji zmiennej numerycznej na zmienną znakową
Załóżmy, że mamy następujący zestaw danych w SAS-ie, który pokazuje całkowitą sprzedaż zrealizowaną przez sklep przez 10 kolejnych dni:
/*create dataset*/ data original_data; input day sales; datalines ; 1 7 2 12 3 15 4 14 5 13 6 11 7 10 8 16 9 18 10 24 ; run ; /*view dataset*/ proc print data = original_data;
Możemy wykorzystać zawartość procedury do wyświetlenia typu danych każdej zmiennej w zbiorze danych:
/*display data type for each variable*/
proc contents data =original_data;
Widzimy, że dzień i sprzedaż są zmiennymi numerycznymi.
Możemy użyć funkcji PUT , aby przekonwertować zmienną dnia z liczbowej na znakową:
/*create new dataset where 'day' is character*/
data new_data;
set original_data;
char_day = put (day, 8.);
drop day;
run ;
/*view new dataset*/
proc print data =new_data;
Możemy ponownie użyć zawartości proc , aby sprawdzić typ danych każdej zmiennej w nowym zbiorze danych:
/*display data type for each variable in new dataset*/
proc contents data =new_data;
Z powodzeniem użyliśmy funkcji PUT do konwersji zmiennej dnia z numerycznej na nową zmienną znakową o nazwie char_day .
Przykład 2: Użycie INPUT do konwersji zmiennej znakowej na zmienną numeryczną
Załóżmy, że mamy następujący zestaw danych w SAS-ie, który pokazuje całkowitą sprzedaż zrealizowaną przez sklep przez 10 kolejnych dni:
/*create dataset*/ data original_data; input day $sales; datalines ; 1 7 2 12 3 15 4 14 5 13 6 11 7 10 8 16 9 18 10 24 ; run ; /*view dataset*/ proc print data = original_data;
Możemy wykorzystać zawartość procedury do wyświetlenia typu danych każdej zmiennej w zbiorze danych:
/*display data type for each variable*/
proc contents data =original_data;
Widzimy, że dzień jest zmienną znakową, a sprzedaż jest zmienną numeryczną.
Możemy użyć funkcji INPUT , aby przekonwertować zmienną dnia ze znaku na numer:
/*create new dataset where 'day' is numeric*/
data new_data;
set original_data;
numeric_day = input (day, comma9.);
drop day;
run ;
/*view new dataset*/
proc print data =new_data;
Możemy ponownie użyć zawartości proc , aby sprawdzić typ danych każdej zmiennej w nowym zbiorze danych:
/*display data type for each variable in new dataset*/
proc contents data = new_data;
Z powodzeniem użyliśmy funkcji INPUT do konwersji zmiennej dnia ze zmiennej znakowej na nową zmienną numeryczną o nazwie numeric_day .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w SAS-ie:
SAS: Jak przekonwertować zmienną znakową na numeryczną
SAS: Jak przekonwertować zmienną numeryczną na znak
SAS: Jak przekonwertować zmienną znakową na datę
SAS: Jak przekonwertować zmienną numeryczną na datę