Monday 23 October 2017

R Promedio Móvil Valores Perdidos


Soy nuevo en R y tengo problemas para resolverlo. Tengo datos sobre las tasas de crecimiento de los árboles muertos, organizados por año. Por lo tanto, mi primera columna es el año y las columnas a la derecha son las tasas de crecimiento de los árboles individuales, que termina en el año de cada árbol murió. Después de que el árbol murió, los valores son NA para los años restantes en el conjunto de datos. Necesito tomar el crecimiento medio durante los 10 años anteriores a la muerte de cada árbol, pero cada árbol murió en un año diferente. ¿Alguien tiene una idea de cómo hacer esto Aquí es un ejemplo de lo que un conjunto de datos podría ser: Así, los promedios que tengo que calcular son: Dado que tengo que hacer esto para un gran número de árboles, sería útil para Tienen un método de automatizar el cálculo. Muchas gracias por cualquier ayuda Katie pidió 19 de diciembre a las 16:30 un método simple y general para rellenar los datos que faltan, si usted tiene carreras de datos completos, es utilizar la regresión lineal. Digamos que usted tiene 1000 carreras de 5 en una fila con ninguna falta. Establecer el vector 1000 x 1 y la matriz de 1000 x 4 X: La regresión le dará 4 números a b c d que dan una mejor coincidencia para sus 1000 hileras de datos mdash diferentes datos, diferentes a b c d. A continuación, utilice estos a b c d para estimar (predecir, interpolar) falta wt0. (Para los pesos humanos, espero que abcd sea alrededor de 1/4.) (Hay millones de libros y papeles en la regresión, en todos los niveles. Para la conexión con la interpolación, sin embargo, no sé de una buena introducción a nadie) Reemplazando valores faltantes con el promedio de la fila Tengo un conjunto de datos, que lo leo desde un archivo externo usando el (datos lt - read. csv (quotmy archivo locationquot)) y leer como un marco de datos 1 quotdata. framequot quotlistquot quotoldClassquot quotvectorquot pero también he convertido Esto en una matriz y trató de aplicar mi código, pero no funcionó. De todas formas, supongo que tengo los siguientes datos. Lt - as. data. frame (matriz (rnorm (100), nrow 10)) Y poner algunos valores faltantes datasample (1:10, 3), sample (1:10, 3) lt - NA Quiero reemplazar Todos los NA39s por promedios de fila o medias de columna de mi matriz. Traté de usar (con mi matriz de datos original) datais. na (datos) lt - rowMeans (data, na. rm TRUE) Pero obtuvo un mensaje de error de Error en rowMeans (data, na. rm TRUE). 39x39 debe ser numérico Entonces convertida datalt - as. matrix (data) datalt - as. numeric (data) Y aplicando mi código datais. na (datos) lt - rowMeans (data, na. rm TRUE) Error en rowMeans (datos, Na. rm TRUE): 39x39 debe ser una matriz de al menos dos dimensiones Entonces nuevamente he intentado convertirlo en matrices. Pero los errores continúan. También he intentado el código datais. na (data) lt - apply (data, 1, mean) Pero aún así no funcionó. ¿Puede alguien pls me ayudan en cuanto a cómo arreglarlo y salir de esto, por favor Muchas gracias Joshua Wiley Hola Daniel, Si sus datos se almacenan en una matriz, lo siguiente debería funcionar (y ser bastante eficiente): dat lt - Matriz (rnorm (100), nrow 10) datsample (1:10, 3), muestra (1:10, 3) lt - NA crear un índice de valores perdidos índice lt - que (is. na (dat), arr. Ind TRUE) calcular la fila medios y quotduplicatequot ellos para asignar a las células apropiadas datindex lt-rowMeans (dat, na. rm TRUE) índice, quotrowquot para la documentación ver que particularmente el arr. ind argumento quotquot para el 28 de febrero de 2011 a las 12: Si sus datos están almacenados en una matriz, lo siguiente debería funcionar (y ser bastante eficiente): dlt-matrix (rnorm (100), nrow 10) datsample (1:10, 3), sample (1:10, 3) lt-NA crear un índice de valores perdidos índice lt - que (is. na (dat), arr. ind TRUE) calcular los medios de fila y quotduplicatequot ellos asignar a las células apropiadas datindex lt-rowMeans (dat, na. rm TRUE) index, quotrowquot para la documentación ver que particularmente el arr. ind argumento quotquot para la extracción o la selección de un subconjunto para sobrescribir la única razón por la que esto no funciona como es con los marcos de datos es debido a la forma en que se indexan / subconjunto. Datindex no funciona. La modificación requerida es probablemente bastante mínima, pero si usted está feliz de usar una matriz, entonces es una cuestión discutible. Hola, Tengo un conjunto de datos, que lo he leído desde un archivo externo usando el (data lt - read. csv (quotmy file locationquot)) y leído como Un marco de datos 1 quotdata. framequot quotlistquot. QuotoldClassquot. Quotvectorquot, pero también he convertido esto en una matriz y trató de aplicar mi código, pero no funcionó. De todas formas, supongo que tengo los siguientes datos. . Lt - as. data. frame (matriz (rnorm (100), nrow 10)) Y poner algunos valores faltantes datasample (1:10, 3), sample (1:10, 3) lt - NA Quiero reemplazar Todos los NA39s por promedios de fila o medias de columna de mi matriz. Traté de usar (con mi matriz de datos original) datais. na (datos) lt - rowMeans (data, na. rm TRUE) Pero obtuvo un mensaje de error de Error en rowMeans (data, na. rm TRUE). 39x39 debe ser numérico Entonces convertido datalt - as. matrix (datos). Datalt - as. numeric (data) Y aplicando mi código datais. na (datos) lt - rowMeans (data, na. rm TRUE). Error en rowMeans (datos, na. rm TRUE): 39x39 debe ser una matriz de al menos dos dimensiones Entonces, de nuevo traté de convertirlo en matrices. Pero los errores continúan. También he intentado el código datais. na (data) lt - apply (data, 1, mean) Pero aún así no funcionó. ¿Puede alguien pls me ayudan en cuanto a cómo solucionarlo y salir de esto, por favor Muchas gracias alternativa versión HTML eliminado R-help en r-project. org lista de correo stat. ethz. ch/mailman/listinfo/r-help POR FAVOR lea la guía de publicación R-project. org/posting-guide. html y proporcione código comentado, mínimo, autónomo y reproducible. - Joshua Wiley Ph. D. Estudiante, Psicología de la Salud Universidad de California, Los Angeles joshuawiley / Bert Gunter Advertencia: Esta no es una respuesta útil. En realidad, es una pregunta: ¿Por qué desea hacer esto? Reemplazar los valores perdidos con promedios de fila o columna y luego analizar los datos como si los valores faltantes no estuvieran allí es algo peligroso hacerlo puede producir estimaciones sesgadas y subestimar el verdadero error , Lo que probablemente resulte en inferencia sesgada. Por supuesto, esto depende de los detalles (cuántos están desaparecidos y dónde). R tiene muchas capacidades incorporadas para manejar valores perdidos. Estoy de acuerdo: it39s at Feb 28, 2011 at 1:02 am Advertencia: Esta no es una respuesta útil. En realidad, es una pregunta: ¿Por qué desea hacer esto? Reemplazar los valores perdidos con promedios de fila o columna y luego analizar los datos como si los valores faltantes no estuvieran allí es algo peligroso hacerlo puede producir estimaciones sesgadas y subestimar el verdadero error , Lo que probablemente resulte en inferencia sesgada. Por supuesto, esto depende de los detalles (cuántos están desaparecidos y dónde). R tiene muchas capacidades incorporadas para manejar valores perdidos. Estoy de acuerdo: no es cosa fácil. Tampoco necesariamente necesitas complicarte: tal vez tu esquema sea perfectamente adecuado para tu situación. Sólo quería advertirle que piensa cuidadosamente en esto si no está al tanto de los posibles problemas y ya no lo ha hecho. Hola, Tengo un conjunto de datos, que lo he leído desde un archivo externo usando el (data lt - read. csv (quotmy file locationquot)) y leído como Un marco de datos 1 quotdata. framequot quotlistquot. QuotoldClassquot. Quotvectorquot, pero también he convertido esto en una matriz y trató de aplicar mi código, pero no funcionó. De todas formas, supongo que tengo los siguientes datos. . Lt - as. data. frame (matriz (rnorm (100), nrow 10)) Y poner algunos valores faltantes datasample (1:10, 3), sample (1:10, 3) lt - NA Quiero reemplazar Todos los NA39s por promedios de fila o medias de columna de mi matriz. Traté de usar (con mi matriz de datos original) datais. na (datos) lt - rowMeans (data, na. rm TRUE) Pero obtuvo un mensaje de error de Error en rowMeans (data, na. rm TRUE). 39x39 debe ser numérico Entonces convertido datalt - as. matrix (datos). Datalt - as. numeric (data) Y aplicando mi código datais. na (datos) lt - rowMeans (data, na. rm TRUE). Error en rowMeans (datos, na. rm TRUE): 39x39 debe ser una matriz de al menos dos dimensiones Entonces, de nuevo traté de convertirlo en matrices. Pero los errores continúan. También he intentado el código datais. na (data) lt - apply (data, 1, mean) Pero aún así no funcionó. ¿Puede alguien pls me ayudan en cuanto a cómo solucionarlo y salir de esto, por favor Muchas gracias alternativa versión HTML eliminado R-help en r-project. org lista de correo stat. ethz. ch/mailman/listinfo/r-help POR FAVOR lea la guía de publicación R-project. org/posting-guide. html y proporcione código comentado, mínimo, autónomo y reproducible. - Bert Gunter Genentech Biostatistics Nonclinical

No comments:

Post a Comment