J'ai toujours été dérouté par les types de variables dans R. Maintenant, j'ai rencontré un problème après la transposition d'une trame de données.R changements de types de variables après la transposition d'une trame de données
Par exemple, j'utilise table()
pour obtenir un compte de chaque facteur dans un certain vecteur:
data(iris)
count <- as.data.frame(table(iris$Species))
typeof(count$Var1)
# [1] "integer"
typeof(count$Freq)
# [1] "integer"
Ma 1ère question serait, pourquoi est-count$Var1
« entier »? Les chaînes peuvent-elles être "entières" aussi? Mais cela n'a pas d'importance car je peux changer le type par count$Var1 <- as.character(count$Var1)
, puis typeof(count$Var1)
devient "personnage".
Maintenant, je transpose cette trame de données par transposed_count <- as.data.frame(t(count))
. Mais je confonds parce que:
typeof(transposed_count[1,])
[1] "list"
typeof(transposed_count[2,])
[1] "list"
transposed_count[2,]
V1 V2 V3
Freq 50 50 50
En conséquence, je dois transposed_count[2,]
d'être un vecteur numérique comme:
transposed_count[2,]
[1] 50 50 50
Comment puis-je faire cela? Et pourquoi sont-ils devenus "liste" après t()
? Désolé si c'est une question stupide. Merci!
Merci pour l'explication! Cela est devenu plus clair pour moi. Mais comment puis-je obtenir une trame de données "transposée" alors? – Yan
Je lis dans un tas de fichiers, chaque fichier que chaque échantillon. Enfin, j'ai besoin d'un cadre de données où les lignes sont des échantillons, les colonnes sont le nombre de chaque élément dans chaque fichier/échantillon. Donc, après avoir lu tous les échantillons, je vais relier toutes les données. C'est pourquoi j'ai besoin d'être transposé. Je vais mettre le "Var1" comme colnames pour le cadre de données final. – Yan
Comme l'a déduit @Roman Luštrik, vous recherchez probablement quelque chose comme 'dcast (melt (count), ... ~ Var1)' dans la bibliothèque 'reshape2'. Cependant, en fonction de votre analyse à venir, la forme la plus naturelle peut être de «lier» les données dans leur format original, en ajoutant une autre colonne avec un indicateur de fichier/échantillon. Cela vous donnerait un format "empilé". –