Diviser chaque bloc de données ligne par le vecteur dans la R
Je suis en train de diviser chaque nombre à l'intérieur d'un bloc de données avec 16 colonnes par un nombre spécifique pour chaque colonne. Les numéros sont stockées en tant que données d'image avec 1-16 correspondant aux échantillons dans les grandes trames de données des colonnes 1 à 16. Il y a un seul chiffre par colonne que j'ai besoin de diviser par chaque nombre de la plus grande feuille de calcul et d'impression à la sortie d'une dernière feuille de calcul.
Ici et exemple de ce que je prends. La feuille de calcul pour être divisé.
X131.478.1 X131.478.2 X131.NSC.1 X131.NSC.2 X166.478.1 X166.478.2
1/2-SBSRNA4 4 2 2 6 7 6
A1BG 93 73 88 86 58 65
A1BG-AS1 123 103 96 128 46 57
Les chiffres pour diviser la feuille de calcul par
X131.478.1 1.0660880
X131.478.2 0.9104053
X131.NSC.1 0.8642545
X131.NSC.2 0.9611866
X166.478.1 0.9711406
X166.478.2 1.0560121
Et les résultats attendus, pas nécessairement arrondis comme je l'ai fait ici.
X131.478.1 X131.478.2 X131.NSC.1 X131.NSC.2 X166.478.1 X166.478.2
1/2-SBSRNA4 3.75 2.19 2.31 6.24 7.20 5.68
A1BG 87.23 80.17 101.82 89.47 59.72 61.55
A1BG-AS1 115.37 113.13 111.07 133.16 47.36 53.97
J'ai essayé de simplement diviser les trames de données mx2 = mx/sf avec mx être le grand ensemble de données et de sf étant le bloc de données de numéros de diviser par. Qui semblait tout diviser par le premier numéro de la sf jeu de données.
Les chiffres de la division ont été générés par estimateSizeFactors, une partie de la DESeq paquet si cela aide.
Toute aide serait super. Merci!
OriginalL'auteur user1883101 | 2012-12-12
Vous devez vous connecter pour publier un commentaire.
sweep
est utile pour ces sortes d'opérations. Par exemple, certaines données factices où nous diviser chaque élément dans les différentes colonnes de la matricemat
par la valeur correspondante dans le vecteurvec
:Dans l'utilisation que nous avons:
OriginalL'auteur Gavin Simpson
Juste de variété, vous pouvez également utiliser
mapply
Mais pour cela, je pense que Josh réponse, c'est mieux... et Gavin est encore mieux!
OriginalL'auteur Justin
Ce n'est rien, mais élément-sage de la multiplication de matrice:
Pour ce faire nous avons utilisé le extérieure approche du produit, puisque directement essayer
mat %*% 1/vec
donne une erreur surnon-conformable arguments
parce qu'ils ont des formes différentes.Ou de regarder le nombre de messages sur https://stackoverflow.com/search?q=%5Br%5D+multiplier+matrix+par+vecteur
De la merde, vous avez raison, c'est l'élément de sage multiplication/division). Je vais devoir faire le
%*%
approche de travail.OriginalL'auteur smci
Vous pouvez utiliser
transform
Tout à fait un peu de type de avec 16 colonnes, mais il devrait fonctionner.
OriginalL'auteur Karsten W.