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.

ayuda para trasladar lenguaje de SAS a lme de paquete nlme en R

de mario garrido escudero -

Buenas, 
estoy consultando un artículo para estimas la correlación entre dos variables, ambas con réplicas, al final la autora pone un ejemplo con SAS, y me gustaria trasladarlo a código de R, es el siguiente:

options nocenter ls = 80 ps = 50 nodate nonumber; 
data a; 
input patient mvar response replicate; 
lines; 
1 1 6.68 1 
1 2 3.97 1 
1 1 6.53 2 
1 2 4.12 2 
. . . . 
. . . . 
8 1 6.77 7 
8 2 6.09 7 
8 1 6.82 8 
8 2 5.58 8 

proc mixed method = ml covtest; 
class patient mvar replicate; 
model response = mvar / solution ddfm = kr; 
random mvar / type=un subject = patient v vcorr; 
repeated mvar replicate/ type = un@ar(1) subject = patient r rcorr; 
run;

Gracias por la ayuda

Correlograma con valores significativo

de nacho dread -
Estimados, les agradecería me ayuden con esto:

Genere un gráfico de dispersión con el código:

plot(p2$mean.of.class[1:40],p2$correlation[1:40], type="o", 
     pch=16,ylab="I Moran",xlab="Distancia (m)")

donde p2 es un dato tipo "correlog" del paquete "ncf"

> str(p2)
List of 6
 $ n            : Named int [1:1239] 28 49 130 214 186 262 240 208 208 240 ...
  ..- attr(*, "names")= chr [1:1239] "0" "1" "2" "3" ...
 $ mean.of.class: Named num [1:1239] 0 988 1548 2463 3489 ...
  ..- attr(*, "names")= chr [1:1239] "0" "1" "2" "3" ...
 $ correlation  : Named num [1:1239] 0.323 0.45 0.476 0.452 0.283 ...
  ..- attr(*, "names")= chr [1:1239] "0" "1" "2" "3" ...
 $ x.intercept  : Named num 24321
  ..- attr(*, "names")= chr "(Intercept)"
 $ p            : num [1:1239] 0.032967 0.003996 0.000999 0.000999 0.000999 ...
 $ call         : chr "correlog(x = p1$X, y = p1$Y, z = rntransform(p1$Tgen), increment = 1000)"
 - attr(*, "class")= chr "correlog"

Necesito que ademas en el gráfico se rellenen en rojo los puntos que son significativos p<0.05 . Estos valores p estan en la columna p2$p

Gracias!




Conexión con base de datos Mysql

de Daniel VG -

Buenas, a ver si me podeis echar una mano.
Tengo un sistema operativo windows 7 de 64 bits, y estoy usando la versión 2.15.1 de 64 bits de R.

La cuestión es que intento acceder a una base de datos MySQL(todo en mi local, base de datos y R), pero me da problemas.

El conector de 64 bits conecta bien al hacer el test con la base de datos desde el administrador de orígenes de datos ODBC, y al hacer odbcConnect en R parece que conecta.

Estos son los detalles que aparecen después de llamar a dicho comando:
channel<--odbcConnect("Conn","user","pwd")

RODBC Connection -10
Details:
case=tolower
DSN=Conn
UID=Daniel
PWD=******

Si luego llamo a cualquier otra función como por ejemplo sqlQuery, me dice que 'first argument is not an open RODBC channel.
Le estoy pasando el channel que devuelve odbcConnect.

¿alguien sabe por qué puede ser esto?

Ayuda con código

de Benito Núñez Quintanilla -
Hola a todos estoy tratando de programar en R para un trabajo sobre estadística y me aparece siempre en el código:
serie es un vector de longitud 5730.

 for(i in 1:5729){
+     hmaxint<-serie[i+1]
+     for(j in i+2:5729){
+         if(serie[j]>hmaxint){
+             k[i]<-k[i]+1 
+             hmaxint<-serie[j]}
+     }
+ }

El error :Error en if (serie[j] > hmaxint) { : 
  valor ausente donde TRUE/FALSE es necesario.
¿Alguien puede decirme porque pasa esto? 

teorema del límite central

de valero andreu matillas -
Hola tengo este vector:

> B
 [1] 2448.067 2597.500 2556.667 2550.000 2329.167 2290.567 2424.167 2414.733
 [9] 2335.833 2578.900 2430.000 2427.533 2390.567 2374.733 2548.633 2579.167
[17] 2410.567 2578.900 2315.000 2456.667 2463.333 2273.067 2393.900 2333.067
[25] 2215.833 2572.500 2302.500 2446.400 2411.667 2353.333 2438.067 2472.500
[33] 2341.667 2445.833 2407.233 2459.167 2560.833 2525.000 2493.333 2293.333
[41] 2264.167 2378.333 2296.400 2496.667 2534.167 2412.233 2376.667 2479.733
[49] 2384.167 2387.500

mi pregunta es qué valores predice el Teorema del Límite Central que se deberían obtener? Se obtienen resultados similares a los predichos por dicho teorema respecto este vector? No se como hacerlo con R, Gracias!

Find and replace Inf values in R

de Yaritza Gomez -
Hi, I have 2 data frame with the same dimension. 
For example
A
4   5   7
1   4   7 
Inf  4   5
4   Inf  0

B
0   5   8
0   5   1
2   4   5
0   9   2

I need a new data frame C where the infinite values do not appear and instead will appear the values of B in the same position. Like this:
C
4  5  7
1  4  7
2  4  5
4  9  0

How can I get C?

Diferencias entre elementos consecutivos

de Miguel Pablo Fernández González -
Hola, 

Tengo un problema a la hora de trabajar con un data frame con estas 2 columnas,

X Y
5 1
8 1
3 0  
12 0
4 1
7 1
15 0
11 0
2 1
8 1

Lo que necesito hacer en primer lugar es la diferencia (diff) de las filas de X para Y=1 y para Y=0 resultando en esto,

X1 X0
3 9
-4 3
3 -4
-5
6

Finalmente debo eliminar (no utilizar) las diferencias entre elementos que no estén seguidos (diferencias lejanas) resultando en esto,

X1 X0
3 9
3 -4
6
Los unos y ceros no tienen por qué ser simétricos ni pares como en el ejemplo, la única condición a seguir es que al final sólo debo quedarme con las diferencias de elementos seguidos (11 / 00).

Espero vuestra ayuda por favor, saludos.

Resolver fórmulas con R

de Mónica Mir Florit -

Hola,

Estoy aprendiendo a usar el programa R y me ha surgido un problema. Quiero resolver una serie de fórmulas donde hay constantes y variables. Yo se resolver la fórmula fácilmente con el programa, el problema me surge cuando quiero cambiar el valor de las variables sin tener que reescribir toda la fórmula. Además, son varias fórmulas donde el resultado de unas sirve para resolver otras. Es decir, quiero saber si es posible hacer servir el programa de una manera similar que con el excel, que cambiando un valor, directamente se cambian los resultados de todas las formulas relacionadas con ese valor.

¿Alguien sabe cómo hacerlo?

¡Muchísimas gracias!

Búsqueda de palabras clave en un dataframe

de Igor Gutiérrez -
Buenas:

Tengo un dataframe con columnas de caracteres y quiero que R me detecte las filas en las que aparecen combinaciones de palabras clave que yo defino. Por ejemplo, tengo el siguiente dataframe (llamado MANT):

COMPONENTE
SUBCOMPONENTE
ACCIÓN
Cjto. de mordazas
Mordaza sup. izda.
Apretar
Cjto. de bandas

Cortar banda rota
Cjto. de mordazas

Eliminar fuga
Cjto. de mordazas Mordaza inf. dcha.
Montar manguera nueva


Quiero que R me detecte las filas en las que aprecen juntas las palabras "mord" (mordazas) y "apret" (apretar) o bien "mord" y "fuga".

He probado con la función grep() pero el problema es que sólo me deja introducir un string de caracteres para buscar y un sólo vector (una sola columna) donde buscar. Un ejemplo de esto:

>grep("mord", MANT$COMPONENTE, ignore.case=TRUE)

En este caso R me daría como output el índice de las filas 1,3 y 4.

Lo que quisiera sería buscar en más de una columna y con más de una palabra. De lo contrario me tocaría ir de uno en uno y luego hacer uniones e intersecciones de casos.

Si alguien me puede ayudar le estaría muy agradecido

Igor

mean squared prediction error en R

de Antonio Perez -
Hola a todos, estoy tratando de encontrar un paquete que me permita calcular el mean squared prediction error. Hasta ahora para los intervalos de prediccion estaba utilizando predict().

Gracias de antemano.