Ho un vettore come di seguito:Come trovare la differenza tra un valore e il suo valore di armadio in un vettore in R?
x= c(1,23,4,15,8,17,21)
dopo che i valori di ordinamento nel vettore abbiamo:
c(1,4,8,15,17,21,23)
la mia uscita richiesto è:
c(3, 3, 4, 2, 2, 2, 2)
che contiene la differenza tra il valore e il suo valore più vicino.
Ma se voglio avere output senza sort, c'è qualche soluzione? Ho bisogno di un out put come c (3,2,3,2,4,2,2) per sapere quale campione ha il maggior valore nella tabella di output (qui il 5 ° valore è il risultato)
@PierreLafortune Ecco come ho capito il problema: prendere la differenza tra ogni elemento del vettore e qualsiasi altro elemento, restituire il minimo senza segno. – RHertel
Quindi, in pratica, vuoi una funzione che sottrae tutto da tutto e stampa la differenza minima di ogni valore ...? – Sotos
Il vettore non ordinato dovrebbe funzionare anche con la soluzione 'outer' che ho mostrato in precedenza. – akrun