[R] Aggiungere colonne

valeriaaa11
Ciao a tutti, ho un problema quando cerco di aggiungere delle colonne a una matrice.
Ho una matrice con 1 colonna di nome risultato, se eseguo le seguenti righe

risultato<-cbind(risultato, a = 0)
risultato<-cbind(risultato, b = 0)
risultato<-cbind(risultato, c = 0)

tutto funziona correttamente,cioè vengono aggiunte 3 colonne di nome a/b/c con tutti i valori 0.
Non riesco a capire perchè non mi fa eseguire invece il seguente codice:


nomi<-c("a","b","c")


for(i in 1:length(nomi)){
  risultato<-cbind(risultato, nomi[i]=0)
}


Potete aiutarmi?

Risposte
valeriaaa11
Scusami Sergio, ho capito che non si accettano le espressioni. Non ho ben capito invece il discorso sulle liste, come si potrebbe scrivere il codice con le liste?Ho provato ma non riesco...Mi interessa questo problema perchè devo aggiungere 20 colonne ed è brutto da leggere 20 righe consecutive di cbind.

Scusami ancora :oops:

valeriaaa11
Grazie sergio. Se dovessi aggiungere 3 colonne (di zeri) in una matrice già esistente, è giusto il mio codice?


mialista<-list("a","b","c")

for(i in 1:length(mialista)){
  dati<-cbind(dati, valore=0)
  colnames(dati)[ncol(dati)]<-mialista[i]
}


Cioè il codice funziona, però mi chiedo se è il migliore. Se al posto di usare una list (list), avessi usato un vettore (c) sarebbe stato irrilevante?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.