Je dois coller, élément par élément, le contenu de deux trames de données pour les entrer dans un autre programme. J'ai une trame de données de moyennes et une trame de données d'erreurs standard de la moyenne.Coller ensemble deux trames de données élément par élément dans R
J'ai essayé d'utiliser la fonction R paste(), mais elle ne semble pas pouvoir gérer les trames de données. Lorsque vous utilisez un vecteur, il semble concaténer tous les éléments du premier vecteur dans une chaîne et tous les éléments de la seconde dans une chaîne séparée. Au lieu de cela, j'ai besoin que chaque élément réciproque dans les deux trames de données soit concaténé ensemble.
Des suggestions sur la façon d'aborder cette question? J'ai inclus des données d'entrée fictives (datMean et datSE) et ma sortie désirée (datNew). Mes trames de données réelles ont environ 10 lignes sur 150 colonnes.
# means and SEM
datMean <- data.frame(a=rnorm(10, 3), b=rnorm(10, 3), d=rnorm(10, 3))
datSE <- data.frame(a=rnorm(10, 3)/100, b=rnorm(10, 3)/100, d=rnorm(10, 3)/100)
# what the output should look like
# i've chosen some arbitrary values here, and show only the first row.
datNew <- data.frame(a="2.889-2.926", b="1.342-1.389", d="2.569-2.576")
L'idée est que chaque élément de datNew être une gamme comprenant des « signifie - se » et « moyenne + SE », séparés par un tiret « - ». La fonction paste() peut le faire pour un élément, comment faire cela sur l'ensemble de l'image?
paste(datMean[1,1] - datSE[1,1], datMean[1,1] + datSE[1,1], sep="-")
EDIT 1: regardant quelques-unes des réponses que je réalise que je quittai sur un peu d'information importante dans la question. Chaque rangée des trames de données d'origine est nommée, et j'ai besoin de reconstituer la trame de données finale avec ces noms. Par exemple:
rownames(datMean) <- LETTERS[1:10]
rownames(datSE) <- LETTERS[1:10]
J'ai besoin de datNew pour éventuellement avoir à nouveau ces 10 noms de base. Cela pourrait être problématique avec certaines des solutions utilisant melt().
merci beaucoup pour cela - j'ai décidé d'accepter cela comme la meilleure réponse car elle ne repose pas sur des paquets externes et est plus rapide que les alternatives , puisqu'il ne dépend pas de apply ou de boucles. + 1 pour for formatC(), je n'avais pas l'air d'avant et le formatage est bien meilleur. – Steve