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.

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

graficas multidimensionales en R, ponderar valores

de skan skan -
Buenas, tengo una tabla de datos con este formato:

function x1 x2 x3
2.232 1 1 1.00
2.242 1 1 1.01
2.732 1 1 1.02
2.770 1 2 1.00
1.932 1 2 1.01
2.132 1 2 1.02
3.222 1.2 1 1
..... ... .. ..


Que representa los valores de function(x1, x2, x3) para cada combinación de valores de x1, x2, x3.
Me gustaría generar un gráfico donde cada punto tenga las coordenadas
x=x1, y=x2, z=(media de function(x1, x2) para todo x3).
¿Cómo puedo hacerlo?
Por ejemplo, para los datos de arriba el primer punto sería
x=x1=1, y=x2=1, z=(2.232+2.242+2.732)/3

En realidad mi tabla tiene más columnas y quiero promediar para aquellas variables que no van a ir en los ejes del gráfico.por ejemplo graficar function(x1, x2) cogiendo las medias para las diferentes x3, x4, x5.

Otra opción sería no promediar sino coger el valor maximo de
function(x1, x2) de entre todos los x1, x2, x3
¿Cómo se hace eso?

Y por último, ¿Cómo grafico function(x1, x2, x3) con x=x1, y=x2, z=x3, y los difrerentes valores de function los represento con diferentes colores?

gracias