J'ai un ensemble de données comme les suivantes:recodage à partir du tableau de code distinct
dat1 <- read.table(header=TRUE, text="
ID Age Align Weat
8645 15-24 A 1
6228 15-24 B 1
5830 15-24 A 3
1844 25-34 B 1
4461 35-44 B 2
2119 35-44 C 2
2115 45-54 A 1
")
dat1
ID Age Align Weat
1 8645 15-24 A 1
2 6228 15-24 B 1
3 5830 15-24 A 3
4 1844 25-34 B 1
5 4461 35-44 B 2
6 2119 35-44 C 2
7 2115 45-54 A 1
Les attributs des colonnes Age
, Align
et Weat
sont décrites dans un code dataframe:
dat2 <- read.table(header=TRUE, text="
Code Desc Column
15-24 Young Age
25-34 Young Age
35-44 Middle Age
45-54 Middle Age
A Straight Align
B Curve Align
C Hill Align
1 Clear Weat
2 Cloudy Weat
3 Rain Weat
")
dat2
Code Desc Column
1 15-24 Young Age
2 25-34 Young Age
3 35-44 Middle Age
4 45-54 Middle Age
5 A Straight Align
6 B Curve Align
7 C Hill Align
8 1 Clear Weat
9 2 Cloudy Weat
10 3 Rain Weat
Je veux pour correspondre à l'image de code pour obtenir mon ensemble de données comme suit:
ID Age Align Weat
1 8645 Young Straight Clear
2 6228 Young Curve Clear
3 5830 Young Straight Rain
4 1844 Young Curve Clear
5 4461 Middle Curve Cloudy
6 2119 Middle Hill Cloudy
7 2115 Middle Straight Clear
J'utilise actuellement les codes suivants pour effectuer ma tâche, ce qui n'est pas efficace pour un grand ensemble de données avec 500 colonnes et une table de code pour ces colonnes.
age <- subset(dat2, Column=="Age")
age
Code Desc Column
1 15-24 Young Age
2 25-34 Young Age
3 35-44 Middle Age
4 45-54 Middle Age
align <- subset(dat2, Column=="Align")
align
Code Desc Column
5 A Straight Align
6 B Curve Align
7 C Hill Align
weat <- subset(dat2, Column=="Weat")
weat
Code Desc Column
8 1 Clear Weat
9 2 Cloudy Weat
10 3 Rain Weat
dat1$Age <- age$Desc[match(dat1$Age, age$Code)]
dat1$Align <- align$Desc[match(dat1$Align, align$Code)]
dat1$Weat <- weat$Desc[match(dat1$Weat, weat$Code)]
dat1
ID Age Align Weat
1 8645 Young Straight Clear
2 6228 Young Curve Clear
3 5830 Young Straight Rain
4 1844 Young Curve Clear
5 4461 Middle Curve Cloudy
6 2119 Middle Hill Cloudy
7 2115 Middle Straight Clear
plyr :: fondu pointeront où vous voulez être –
wait .. pourrait être reshape2 pas plyr –