Forum

Nome Utente:
Password:
Riconoscimi automaticamente
 Tutti i Forum
 MolecularLab
 Bioinformatica
 comando per R
 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi Aggiungi ai Preferiti Aggiungi ai Preferiti
Cerca nelle discussioni
I seguenti utenti stanno leggendo questo Forum Qui c'è:

Aggiungi Tag Aggiungi i tag

Quanto è utile/interessante questa discussione:

Autore Discussione  

cge
Nuovo Arrivato

Città: Roma


105 Messaggi

Inserito il - 14 aprile 2008 : 00:28:29  Mostra Profilo  Visita l'Homepage di cge Invia a cge un Messaggio Privato  Rispondi Quotando
Chi mi consiglia un comando di R che mi possa permettere una operazione del genere?
Ho un vettore di dati (es. nomi di persona), i quali devono essere codificati con delle altre stringhe di testo (es. lettere dell'alfabeto), contenute in un altro vettore, il quale ha una dimensione inferiore al primo vettore.

Più semplicemente: la lista di nomi di persona è lunga 100, e so che contiene 20 differenti nomi. come posso assegnare a ogni nome una differente lettera??

CGE

chick80
Moderatore

DNA

Città: Edinburgh


11491 Messaggi

Inserito il - 14 aprile 2008 : 05:00:59  Mostra Profilo  Visita l'Homepage di chick80 Invia a chick80 un Messaggio Privato  Rispondi Quotando
Bella domanda... quindi se non ho capito male tu hai:

mario, gino, pino, mario, mario, pino, luigi

e vuoi trasformarlo in

a,b,c,a,a,c,d

giusto?

Che io sappia non c'è un comando diretto che te lo fa, però potresti fare una cosa del genere (non ottimizzato, suppongo ci siano metodi migliori)


trovaNomi = function(nomi)
	{
	nomi1 = c();

	i=1;
	# Passiamoci tutti i nomi
	for (n in nomi)
		{
		newName = 1;

		# Controlliamo se abbiamo già preso questo nome
		for (n1 in nomi1)
			{
			if (n1 == n)	# Il nome è già presente
				{
				newName=0;
				}
			}

		# Se il nome è nuovo lo aggiungiamo nell'array nomi1
		if (newName == 1)
			{
			nomi1[i] = n;
			i=i+1;
			}
		}

	# Restituiamo l'array nomi1 che ha solamente 1 istanza per ciascun nome
	associaNomi = nomi1;
	}


# Definiamo i nomi ovviamente li puoi importare da file
nomiIniziali = c("luca", "mario", "gino", "pino", "pippo", "mario", "pippo", "mario", "luca");

# trovaNomi ci trova i singoli nomi
nomi = trovaNomi(nomiIniziali);
nomiFinali = c();

for (i in 1:length(nomiIniziali))
	{
	for (j in 1:length(nomi))
		if (nomi[j] == nomiIniziali[i])
			break;

	nomiFinali[i] = LETTERS[j];
	}

print(nomiIniziali);
print(nomiFinali);

Sei un nuovo arrivato?
Leggi il regolamento del forum e presentati qui

My photo portfolio (now on G+!)
Torna all'inizio della Pagina

cge
Nuovo Arrivato

Città: Roma


105 Messaggi

Inserito il - 14 aprile 2008 : 21:17:21  Mostra Profilo  Visita l'Homepage di cge Invia a cge un Messaggio Privato  Rispondi Quotando
Grazie mille! Mi sarà veramente utile!
CGE
Torna all'inizio della Pagina
  Discussione  

Quanto è utile/interessante questa discussione:

 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi Aggiungi ai Preferiti Aggiungi ai Preferiti
Cerca nelle discussioni
Vai a:
MolecularLab.it © 2003-18 MolecularLab.it Torna all'inizio della Pagina