J'aimerais convertir une matrice de valeurs en une matrice de «bits».
Je cherche des solutions et j'ai trouvé Ce , qui semble faire partie d'une solution.
Je vais essayer d'expliquer ce que je cherche.
J'ai une matrice comme p> que je souhaite convertir en p> donc pour chaque valeur de la rangée A "1" dans la colonne correspondante. P> si j'utilise p> Ceci est proche de ce que je cherche, mais retourne une ligne pour chaque valeur . P> Je n'aurais besoin que de consolider toutes les valeurs d'une ligne en une ligne.
Parce qu'un p> donne toutes les valeurs de toute la table, de sorte que dois-je faire pour obtenir les valeurs par ligne. P> p>
4 Réponses :
bit_x = matrix(0, nrow = nrow(x), ncol = max(x)) for (i in 1:nrow(x)) {bit_x[i,x[i,]] = 1}
let une approche serait p> dans une ligne: p> Suivre votre approche, de la même manière à la suggestion de @ Psiidom: p>
Voici une autre option utilisant Tableau () Code> Fonction:
table(row(x), x)
# x
# 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
# 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0
# 2 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0
# 3 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0
# 4 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0
# 5 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
Nous pouvons utiliser le package reshape2 em>. qui nous donne cette p>
Et s'il y a deux entiers égaux dans la même rangée?
Qui n'est pas conceptionnellement pas le cas.