tabsplit
du package tab_chi
sur SSC le fera pour vous.
clear
input id str42 Category
1 "Economics"
2 "Biology"
3 "Psychology; Economics"
4 "Economics; Psychology"
end
capture ssc install tab_chi
tabsplit Category, p(;)
Category | Freq. Percent Cum.
------------+-----------------------------------
Biology | 1 16.67 16.67
Economics | 3 50.00 66.67
Psychology | 2 33.33 100.00
------------+-----------------------------------
Total | 6 100.00
Remarque: Vous pouvez compter les points-virgules et ainsi les phrases comme celle-ci.
gen count = 1 + length(category) - length(subinstr(category, ";", "", .))
La logique est que vous mesurez la longueur de la chaîne et sa longueur doit des points-virgules ;
remplacé par des chaînes vides (à savoir, enlevé). La différence est le nombre de points-virgules auxquels vous ajoutez 1.
EDIT: Comment accéder à une structure de données différente, en commençant par l'exemple de données ci-dessus.
. split Category, p(;)
variables created as string:
Category1 Category2
. drop Category
. reshape long Category, i(id) j(mention)
(note: j = 1 2)
Data wide -> long
-----------------------------------------------------------------------------
Number of obs. 4 -> 8
Number of variables 3 -> 3
j variable (2 values) -> mention
xij variables:
Category1 Category2 -> Category
-----------------------------------------------------------------------------
. drop if missing(Category)
(2 observations deleted)
. list, sepby(id)
+----------------------------+
| id mention Category |
|----------------------------|
1. | 1 1 Economics |
|----------------------------|
2. | 2 1 Biology |
|----------------------------|
3. | 3 1 Psychology |
4. | 3 2 Economics |
|----------------------------|
5. | 4 1 Economics |
6. | 4 2 Psychology |
+----------------------------+
Merci, cela a fonctionné parfaitement. Ce paquet sera certainement utile. Un petit problème peut-être est que la commande tabsplit n'accepte pas 'par tri'. Une idée de comment je pourrais procéder si je voulais appliquer tabsplit au sous-groupe? – Homard
Voir la réponse révisée. Vouloir le faire à plusieurs reprises est une indication claire que vous avez besoin d'une version différente de l'ensemble de données ainsi que le présent. –