Combinar 2 columnas en 1 columna muchas veces en un gran conjunto de datos en ICombinar 2 columnas en 1 columna muchas veces en un gran conjunto de datos en I
Las soluciones torpes que estoy trabajando no van a ser muy rápido si puedo hacer que funcionen y el verdadero conjunto de datos es ~ 1500 X 45000, así que necesitan ser rápidos. Definitivamente estoy perdido por 1) en este momento, aunque tengo un código para 2) y 3).
Aquí está un ejemplo de juguete de la estructura de datos:
pop = data.frame(status = rbinom(n, 1, .42), sex = rbinom(n, 1, .5),
age = round(rnorm(n, mean=40, 10)), disType = rbinom(n, 1, .2),
rs123=c(1,3,1,3,3,1,1,1,3,1), rs123.1=rep(1, n), rs157=c(2,4,2,2,2,4,4,4,2,2),
rs157.1=c(4,4,4,2,4,4,4,4,2,2), rs132=c(4,4,4,4,4,4,4,4,2,2),
rs132.1=c(4,4,4,4,4,4,4,4,4,4))
Por lo tanto, hay algunas columnas de información demográfica básica y luego el resto de las columnas son bialélicas SNP información. Ej .: rs123 es el alelo 1 de rs123 y rs123.1 es el segundo alelo de rs123.
1) Necesito fusionar todos los datos SNP bialélico que está actualmente en 2 columnas en 1 columna, así, por ejemplo: rs123 y rs123.1 en una columna (pero dentro del conjunto de datos):
11
31
11
31
31
11
11
11
31
11
2) Necesito identificar el valor de SNP menos frecuente (en el ejemplo anterior es 31).
3) Tengo que sustituir el valor menos frecuente SNP con 1 y el otro (s) con 0.
pasta! ¡Por supuesto! Me refiero a concatenar. Muchísimas gracias por la ayuda. Ahora estoy trabajando para que funcione en 45,000 columnas. ¡Gracias de nuevo! –
Puede trabajar con 'grep()' y 'match()' para obtener los índices de columnas. Además, siéntase libre de votar y/o aceptar esta respuesta si le parece correcta :-) –
¡aceptada! :) ¡No tengo suficientes puntos de reputación para vitorear todavía ...! –