Foro de debate

Ayuda con for e if

Ayuda con for e if

by Javier Crespo Sugrañez -
Number of replies: 4

Buenas:

el problema que tengo es el siguiente:

tengo tabla de datos con muchos datos y R no lee mas de 1000 (creo recordar) y me sale el mensaje de que me deja de mostrar un número de datos. Por lo que estoy intentando con for crear un bucle para que consiga leer todos los datos.

El problema que tengo es que no soy capaz de decirle a R que me lea una terminada columna, a la cual le he asignado un nombre. Y esa es mi pregunta como le digo al for e if que me lean una determinada columna unicamente para generar un filtro con esos datos?

Gracias.

In reply to Javier Crespo Sugrañez

Re: Ayuda con for e if

by Manuel Muñoz Márquez -

Buenas:

El número máximo de elementos en un vector de R es de 2^31-1.

¿Dónde tiene los datos? ¿En qué formato?

Un saludo.

In reply to Manuel Muñoz Márquez

Re: Ayuda con for e if

by Javier Crespo Sugrañez -

Los datos los tengo en un archivo .txt con forma de tabla porque R me lo lee como tal pero una vez los cargo con read.table me sale: omitted 2184 rows. Pero lo que yo quiero hacer es filtrar una de las columnas con unas restricciones de valores. por ejemplo entre 20 y 50

In reply to Javier Crespo Sugrañez

Re: Ayuda con for e if

by Manuel Muñoz Márquez -

Buenas:

Probablemente es debido a que el formato de las filas es irregular o a que los parámetros de lectura no se corresponden con el formato del fichero. Sin tener el fichero no es posible ayudar más.

Un saludo.

In reply to Manuel Muñoz Márquez

Re: Ayuda con for e if

by Manuel Muñoz Márquez -

Buenas:

El fichero que me has enviado no tiene cabecera y el valor por defecto para la instrucción read.table es que sí la tengan. La instrucción:

read.table('prueba.csv', header=F)

Me devuelve un conjunto de datos con 2212 filas y 35 columnas.

Los for en R son muy poco eficientes. Es preferible usarlos únicamente cuando sean necesarios. Por ejemplo, para construir una nueva columna que me diga si un valor es superior o igual a 2300, es suficiente con hacer

Datos$test <- Datos[7] > 300

Cada fila tendrá el valor TRUE o FALSE dependiendo de si se cumple la condición o no.

Te recomiendo leas algún texto básico de introducción a R.

Un saludo.