2010-09-24 18 views
5

Duplicar posibles:
How to read logical data from a file in RCómo leer los datos lógicos de un archivo en I

que genera un archivo que contiene un valor lógico sea un "verdadero" o "falso" en cada línea. Ahora me gustaría leer los datos lógicos del archivo en R. Sin embargo, los datos que se leen son de modo "carácter", no valores lógicos. Me preguntaba cómo leer los datos como valores lógicos del archivo.

Mi código R es

cat(FALSE,"\n", file="1.txt", append=FALSE); 
for (i in 2:5) cat(TRUE,"\n",file="1.txt", append=TRUE); 
a=scan(file="1.txt", what="logical") 

La salida es:

> mode(a) 
1] "character" 
> mode(a[1]) 
[1] "character" 
> a[1] 
[1] "FALSE" 

Quiero a [1] a ser valor lógico.

¡Gracias y saludos!

Respuesta

5

En lugar de:

a=scan(file="1.txt", what="logical") 

intento:

a = scan(file="1.txt", what=logical(0)) 

Ver ?scan para la documentación.

+0

THanks! ¡Eso funciona! Intenté leer la documentación de ayuda, pero todavía no estoy seguro de cuál es la diferencia entre what = "logical" y what = logical (0)? ¡Gracias! – Tim

+0

Básicamente, quiere un objeto del tipo real al que se deben forzar los valores. También podría decir 'scan (file = '1.txt', what = TRUE)' y funcionaría igual. 'logical (0)' es una forma más limpia, IMO. – ars

2
a 
[1] "FALSE" "TRUE" "TRUE" "TRUE" "TRUE" 
a <- as.logical(a) 
a 
[1] FALSE TRUE TRUE TRUE TRUE 
Cuestiones relacionadas