Foro de discusión y soporte para usuarios de R

Un foro abierto a todos los temas relacionados con R que quiera.
Nota: Una url estable a este foro es https://knuth.uca.es/R-foro.

extracción de datos específicos de una base de datos!

de Josué Núñez Rico -
Hola que tal tengo medio año aprendiendo a usar R y de verdad es una bendición este programa, aunque ahorita estoy realmente atorado y necesito ayuda con urgencia pues necesito entregar algunos resultados y espero me puedan ayudar con el problema!!!

Estoy calculando áreas de una serie de triángulos escalenos donde la formula que se emplea es la fórmula de heron, la cual solicita calcular primero el semiperimetro para poder obtener el área el caso es que en mi base de datos tengo 13 triángulos con 100 repeticiones cada uno y cada repetición consta de tres medidas a y b que son los lados y c que es la base, la situación esta q al momento de aplicar los semiperimetros a la formula del área algunos datos me salen negativos y esto provoca un error que llena mi tabla con puros Nan, para corregir este error necesito extraer de la base de datos original todas las medidas que sean mayores al semiperimetro para así aplicarles un factor de corrección y poder aplicar correctamente la fórmula, y e ahí el problema que no e decifrarlo como hacerlo hasta el momento con este comando error=c(dat[,1] >=p1) e logrado que me diga si es falso y verdadero el comando y una sola columna, y lo que necesito es extraer los valores y no que solo me diga si es falso o verdadero.

Porfavor ayudenme!! estoy sumamente atorado con esto!!!

Gracias

Importar datos de Excel a Rcomander en Mac

de Carlos Serrano -
Hola tengo un mac y he conseguido instalar R y Rcomander perfectamente.

No puedo importar datos de un fichero Excel.

¿sabéis como se debe configurar el ODBC para poder impotar desde Rcomander?

Instalación R Commander

de Juan Bautista Relloso -

Hola a todos:

He instalado el R commander V 1.5-6 sobre el R v 2.11.

Aparentemente el funcionamiento es correcto pero en la parte de abajo del R commander me da un mensaje de advertencia que lo pongo a continuaciuón.

AVISO: La versión de windows de R commander funciona mejor bajo R Gui con la interface de documento único (SDI); vea ?Commander

Si alguien sabe que significa este mensaje y como se puede solucionar, muchas gracias.

Un saludo 

Wavelet con sowas

de Angela Maria Caballero -
Hola a tod@s.
Estoy haciendo wavelet con la librería sowas de R, pero no sé cómo determinar los parámetros que me definan las funciones de los distintos análisis wavelet (power spectrum, cross-spectrum, coherence,...). Los parámetros a los que me refiero son: noctave, nvoice, w0,s0,...

¿Alguien podría ayudarme?

Gracias y un saludo a todos.
Ángela

aggregate con resultado vectorial ?? (cummax)

de skan skan -

Buenas

Tengo una serie (en formato zoo y con indice tipo chron) y quisiera obtener la serie:
cummax(mydata)-mydata

pero no a toda la serie de golpe sino para cada dia.
Es decir, quiero obtener una unica serie con el drawdown pero no coja como origen el primer dato de toda la serie sino el primero de cada dia.

Lo que quiero es
aggregate(mydata, as.date, cummax)
pero surge un problema, el comando aggregate sólo sirve para funciones escalares y yo quiero un vector del mismo tamaño que el original.
¿Cómo puedo hacerlo?
He probado con plyr y con tapply pero no me sale.

Si no se pudiera hacer todo de golpe habria que dividir la serie en cachos diarios, aplicar cummax(x)-x a cada cacho y luego juntarlos todos, pero tampoco se hacer eso.

saludos

Error en cmdscale

de rcr cr -
Hola a tod@s, me gustaría saber si alguien me podría ayudar en el siguiente problema. Os incluyo a continuación el código, pero básicamente lo que hace es crear una matriz a raiz de unos datos que están almacenados en otra matriz. Y una vez almacenados en "matriz_alumnos" los trato y ejecuto isoMDS, donde me muestra el siguiente error:

"Error en cmdscale(d, k) : 'k' must be in {1, 2, .. n - 1}"

A continuación os indico el código y lo que sale en los puntos más importantes:

longitud_matriz<-num_categorias*num_alumnos;

matriz_alumnos<-1:longitud_matriz;

dim(matriz_alumnos)<-c(num_alumnos,num_categorias);

for(i in 1:num_categorias)
{
num1<-puntos[i,2];
num1<-num1+1;
num2<-puntos[i,3];
num2<-num2+1;

aux<-ini[,num1:num2];

media<-apply(aux,1,f);
print (media)

for (j in 1:num_alumnos)
{
print(j)
matriz_alumnos[j,i]<-media[j];
}

}
// salida de matriz_alumnos:
[,1] [,2] [,3] [,4]
[1,] 3.600005 3.509518 4.009238 2.008311
[2,] 1.407373 2.500270 3.500021 4.002434

matriz_alumnos.dist <- dist(matriz_alumnos)
// salida de matriz.dist:
1
2 3.172073


matriz_alumnos.mds <- isoMDS(matriz_alumnos.dist)
// aquí es donde me da el error anterior: "Error en cmdscale(d, k) : 'k' must be in {1, 2, .. n - 1}"

Yo creo que el problema está en que matriz.dist solo me genera una celda y no entiendo el por qué ...

Agradecería mucho cualquier ayuda, porque es para un proyecto que debo entregar en septiembre y estoy bastante atascada. Muchas gracias de antemano,

Un saludo.

Conexión a SQL Server

de Alberto Martin -
Buenas,

Trabajo con una base de datos de meteorología en SQL y trato dichos datos con R, pero no consigo conectarme a ella de forma automática para que la descarga de los datos no sea manual. Si alguien sabe cómo conectarse a SQL desde R y quiere ayudarme, le estaré muy agradecido.

Saludos.

problemas usando R

de CESAR- SANCHEZ -
Hola,

Acabo de instalar R en mi computadora (Mac Intel Core 2 Duo) pero no logro realizar casi ninguna función y no encuentro ayuda para solucionarlo.
En la consola me aparecen estos anuncios:

"During startup - Warning messages:
1: Setting LC_CTYPE failed, using "C"
2: Setting LC_COLLATE failed, using "C"
3: Setting LC_TIME failed, using "C"
4: Setting LC_MESSAGES failed, using "C"
[R.app GUI 1.34 (5589) i386-apple-darwin9.8.0]

WARNING: You're using a non-UTF8 locale, therefore only ASCII characters will work."


Alguien tiene idea de como solucionarlo.
Muchas gracias de antemano.

Saludos,
CS

Unir o sumar series. condiciones complejas

de skan skan -
Buenas

Tengo unos 40 archivos cuyo contenido tiene este formato


Fechayhora dato

1990-01-01 10:00:00 , 0.900
1990-01-01 10:01:00 , 0.910
1990-01-01 10:03:00 , 0.905
1990-01-01 10:04:00 , 0.905
1990-01-01 10:05:00 , 0.890

Algunos datos pueden no existir y en los diferentes archivos los datos pueden tener diferentes frecuencias.
Quisiera juntar los datos, por ejemplo sumando los que coincidan en hora. Supongo que debo usar zoo o timeseries.

Para leerlo debería usar algo así:
tmp <- read.table("demo2.txt", sep = ",")
z <- zoo(tmp[, 2], as.Date(as.chron(tmp[, 1]), format = "%Y-%m-%d %H:%M:%S"))
ó así
z <- read.zoo(textConnection(Lines), index = 1:2, FUN = function(x)
as.chron(paste(x[,1], x[,2])))

Ahora para poder sumar las series... supongo que debo crear un objeto zoo de fechasyhoras con frecuencia igual al MCD de todas las que tengo, y hacer un merge de cada serie con ese nuevo objeto para así conseguir una serie con valores donde no teniamos. Luego sustituir los valores inexistentes por el ultimo valor valido.
Luego sumar las diferentes series. NO sé si con rowsums o simplemente "+"
¿Algún comentario sobre todo esto?

Y ahora viene lo que no tengo ni idea...
¿Cómo recorro los datos para hacer lo siguiente?

cada dia:
guardo el primer dato del dia -> datoini
recorro todos los demas datos del dia hasta que
datoini-datoini >= valor y guardo ese dato en datodia
o si no se cumple nunca esa condicion datodia=ultimo dato del dia
y obtengo la suma de todos los datodia de todos los dias de la serie.

¿Cómo hago eso con un bucle?
¿Cómo lo hago con aggregate?

gracias

saludos