La tua domanda è un po 'strano e sospetto che vi manca qualche dettaglio. Per ottenere esattamente quello che vuoi è un po 'goffo. In primo luogo generare alcuni dati:
##Some data
R> m = matrix(sample(1:3, 10, replace=T), ncol=10)
R> m
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 1 2 2 3 1 3 3 2 2 1
poi scegliere i valori unici:
R> v = unique(m[1,])
ora creare vettori in base alle esigenze:
R> (a = which(v[1]==m[1,]))
[1] 1 5 10
R> (b = which(v[2]==m[1,]))
[1] 2 3 8 9
R> (c = which(v[3]==m[1,]))
[1] 4 6 7
Tuttavia questo non è scalabile (o elegante). Se si dispone di più di un paio di valori, si vuole iterare v
, in modo da qualcosa come:
(l = sapply(v, function(i) which(m[1, ] == i)))
La variabile l
è una lista. Per accedere ai singoli elementi, utilizzare
l[[1]]
l[[2]]
l[[3]]
Ogni volta che si nome oggetti 'a',' B', 'C' o' obj1', 'obj2' ecc si è essenzialmente creato un elenco di falso che è molto più difficile da gestire rispetto a quello reale. – Backlin