EDITNonostante la decisione dell'OP di accettare questa risposta, la risposta di @ Andrie è la soluzione preferita. La mia risposta è intesa solo per informare su alcune strane funzionalità dei frame di dati.
Come altri hanno sottolineato, la risposta breve è che questo non è possibile. data.frame
s sono intesi per contenere colonne di un singolo tipo atomico. @ Il suggerimento di Andrie è buono, ma solo per i calci ho pensato di indicare un modo per calzare questo tipo di dati in un data.frame
.
è possibile convertire la colonna incriminato per una lista (questo codice presuppone che hai impostato options(stringsAsFactors = FALSE)
):
dat <- read.table(textConnection("1,4,'m'
1,5,20
1,6,'Canada'
1,7,4
1,8,5"),header = FALSE,sep = ",")
tmp <- as.list(as.numeric(dat$V3))
tmp[c(1,3)] <- dat$V3[c(1,3)]
dat$V3 <- tmp
str(dat)
'data.frame': 5 obs. of 3 variables:
$ V1: int 1 1 1 1 1
$ V2: int 4 5 6 7 8
$ V3:List of 5
..$ : chr "m"
..$ : num 20
..$ : chr "Canada"
..$ : num 4
..$ : num 5
Ora, ci sono tutta una serie di motivi per cui questo è una cattiva idea. Per uno, un sacco di codice che ti aspetteresti di giocare bene con data.frame
s non piacerà e fallirà, o si comporterà in modo molto strano. Ma pensavo di indicarlo come una curiosità.
Andrie hai detto la stessa cosa di me ma meglio. –
@ user718281, da leggere come stringhe, non fattori, usa read.csv (..., stringheAsFactors = FALSE) – Max
Grazie Andrie. Una cosa che non so bene come fare è però come passare dal file csv al vettore. Come in, è a mia conoscenza che read.csv emette una matrice, non un vettore. – evt