Estimada comunidad, tengo el siguiente problema: Tengo una tabla de datos de 563 x 7, de las 7 columnas las 4 primeras son de identificacion de una muestra y las 3 ultimas identifican a una variable respuesta medida en esa muestra. Hay varias respuestas para cada muestra y la cantidad de respuestas puede variar entre 1 y 7. El problema es que la identificacion de cada muestra esta puesta una unica vez para todas las respuestas de esa muestra (todas las respuestas de una misma muestra estan puestas juntas). Podria completar la tabla a mano, pero ya que son mas de 500 filas hice un pequeño loop para completar lo que falta. La idea es bastante simple, si el elemento de la fila n columna j es "NA" entonces se deberia copiar el elemento de la fila n-1 columna j en (n,j) ... aqui es donde esta el problema pues la instruccion IF no reconoce los elementos NA como NA y el ciclo pasa sin completar copiar nada en la fila n, me explico ? envio el codigo y el archivo que estoy usando a ver si alguien me orienta donde esta el error. he probado con: if (dat[n,1] == "NA") if (dat[n,1] == "") if (dat[n,1] == "<NA>") y con lo mismo pero %in% en lugar de = # rellenar los espacios vacios de la identificacion dat[,1] <- as.character(dat[,1]) n <- 2 for (n in 2:nrow(dat)) { if (dat[n,1] %in% "NA") { dat[n,1] <- dat[n-1,1] dat[n,2] <- dat[n-1,2] dat[n,3] <- dat[n-1,3] dat[n,4] <- dat[n-1,4] } n <- n + 1 } muchas gracias por su tiempo, slds, eric. -- Forest Engineer Master in Environmental and Natural Resource Economics Ph.D. student in Sciences of Natural Resources at La Frontera University Member in AguaDeTemu2030, citizen movement for Temuco with green city standards for living Nota: Las tildes se han omitido para asegurar compatibilidad con algunos lectores de correo. ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: dat.csv Type: text/csv Size: 11866 bytes Desc: no disponible URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20140813/ed3abf40/attachment.bin>
neo <ericconchamunoz en gmail.com> writes:> fila n-1 columna j en (n,j) ... aqui es donde esta el problema pues la > instruccion IF no reconoce los elementos NA como NA y el ciclo pasa sin > completar copiar nada en la fila n, me explico ? > > envio el codigo y el archivo que estoy usando a ver si alguien me > orienta donde esta el error. > > he probado con: > > if (dat[n,1] == "NA") > if (dat[n,1] == "") > if (dat[n,1] == "<NA>")¿has probado con is.na(x)? Ten en cuenta que devuelve TRUE o FALSE por lo que tendrías que adaptar el código... -- :: Igor Sosa Mayor :: joseleopoldo1792 en gmail.com :: :: GnuPG: 0x1C1E2890 :: http://www.gnupg.org/ :: :: jabberid: rogorido :: ::
gracias igor, voy a probar, slds, eric. On 13/08/14 15:34, Igor Sosa Mayor wrote:> neo <ericconchamunoz en gmail.com> writes: > >> fila n-1 columna j en (n,j) ... aqui es donde esta el problema pues la >> instruccion IF no reconoce los elementos NA como NA y el ciclo pasa sin >> completar copiar nada en la fila n, me explico ? >> >> envio el codigo y el archivo que estoy usando a ver si alguien me >> orienta donde esta el error. >> >> he probado con: >> >> if (dat[n,1] == "NA") >> if (dat[n,1] == "") >> if (dat[n,1] == "<NA>") > > ¿has probado con is.na(x)? Ten en cuenta que devuelve TRUE o FALSE por > lo que tendrías que adaptar el código... >-- Forest Engineer Master in Environmental and Natural Resource Economics Ph.D. student in Sciences of Natural Resources at La Frontera University Member in AguaDeTemu2030, citizen movement for Temuco with green city standards for living Nota: Las tildes se han omitido para asegurar compatibilidad con algunos lectores de correo.
Estimados, cuál es la diferencia para R entre : NA <NA> "<NA>" "NA" Cuando estan en un archivo de texto que sera leido como tabla como en el archivo que les envie ? Gracias, eric. On 13/08/14 15:34, Igor Sosa Mayor wrote:> neo <ericconchamunoz en gmail.com> writes: > >> fila n-1 columna j en (n,j) ... aqui es donde esta el problema pues la >> instruccion IF no reconoce los elementos NA como NA y el ciclo pasa sin >> completar copiar nada en la fila n, me explico ? >> >> envio el codigo y el archivo que estoy usando a ver si alguien me >> orienta donde esta el error. >> >> he probado con: >> >> if (dat[n,1] == "NA") >> if (dat[n,1] == "") >> if (dat[n,1] == "<NA>") > > ¿has probado con is.na(x)? Ten en cuenta que devuelve TRUE o FALSE por > lo que tendrías que adaptar el código... >-- Forest Engineer Master in Environmental and Natural Resource Economics Ph.D. student in Sciences of Natural Resources at La Frontera University Member in AguaDeTemu2030, citizen movement for Temuco with green city standards for living Nota: Las tildes se han omitido para asegurar compatibilidad con algunos lectores de correo.