Bonjour,
Pour chaque couleur (A,B,C,D,E,F,G) correspond à une ou plusieurs catégories en même temps (1,2,3,4) dépendant de l'échantillon. Pour chaque catégories en même temps, il y a une séparation en virgule.
Je souhaite simplifier mes données pour avoir un tableau, en comptabilisant comme suit :
J'ai le script suivant , mais il duplique les lignes pour chaque catégorie, mais je n'arrive pas à diviser sur le nombre de ligne dupliqué :A B C D E F G
1 1 0 0 0 0 0 0
1,2 0 1 0 0 0 0 2
à
A B C D E F G
1 1 0 0 0 0 0 0
1 0 0.5 0 0 0 0 1
2 0 0.5 0 0 0 0 1
et finalement avoir
A B C D E F G
1 1 0.5 0 0 0 0 1
2 0 0.5 0 0 0 0 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 DF <- read.table(text = " Color Cat A 1 B 1 C 4,2 D 1,3 E 1,2 F 3 G 5 A 2 B 3 C 1,2 D 4,3 E 3 F 1 G 1" , header = TRUE) DF = table(DF$Cat,DF$Color) cats <- strsplit(rownames(DF), ",", fixed = TRUE) DF <- DF[rep(seq_len(nrow(DF)), sapply(cats, length)),] DF <- as.data.frame(unclass(DF)) DF$cat <- unlist(cats) DF <- aggregate(. ~ cat, DF, FUN = sum)
Je vous remercie pour votre aide.
Partager