У меня есть data.frame
с различными данными года для набора наблюдений. Название столбцов - год, и год повторения идентифицируется по году, за которым следует ".1"
(2008
и 2008.1
повторный год).Средние столбцы кадра данных
dput()
не для первого наблюдения data.frame
заключается в следующем:
structure(list(ID = 2174L, `1992` = 0L, `1993` = 0L, `1994` = 0L,
`1994.1` = 0L, `1995` = 0L, `1996` = 0L, `1997` = 0L, `1998` = 0L,
`1999` = 0L, `1997.1` = 0L, `1998.1` = 0L, `1999.1` = 0L,
`2000` = 0L, `2001` = 0L, `2002` = 0L, `2003` = 0L, `2000.1` = 0L,
`2001.1` = 0L, `2002.1` = 0L, `2003.1` = 0L, `2004` = 0L,
`2005` = 0L, `2006` = 0L, `2007` = 0L, `2008` = 0L, `2004.1` = 0L,
`2005.1` = 0L, `2006.1` = 0L, `2007.1` = 0L, `2008.1` = 0L,
`2009` = 0L, `2010` = 0L, `2011` = 0L, `2012` = 0L, `2013` = 0L,
altura_mean_30arc = 341, dist_p = -1239.46778549383, dist_capital = 310537.289055982,
municode = 428, slope = 0.109233340937795, dist_f = -54589.0213329769), .Names = c("ID",
"1992", "1993", "1994", "1994.1", "1995", "1996", "1997", "1998",
"1999", "1997.1", "1998.1", "1999.1", "2000", "2001", "2002",
"2003", "2000.1", "2001.1", "2002.1", "2003.1", "2004", "2005",
"2006", "2007", "2008", "2004.1", "2005.1", "2006.1", "2007.1",
"2008.1", "2009", "2010", "2011", "2012", "2013", "altura_mean_30arc",
"dist_p", "dist_capital", "municode", "slope", "dist_f"), row.names = 2174L, class = "data.frame")
Я хочу, чтобы вычислить среднее значение года и повторный год (2008 и 2008.1). Чтобы упростить процесс, который я попробовал цикл для каждого неоднократного года:
duplicated_years <- c("1994", "1997", "1998", "1999", "2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008")
duplicated_years2 <- str_c(duplicated_years, "1", sep = ".")
for(i in as.numeric(duplicated_years)){
for(j in as.numeric(duplicated_years2)){
df[, str_c(i, "mean", sep="_")] <- ((df$i + df$j)/2)
}
}
Но результат представляет собой набор новых переменных с НС. Я знаю, что вместо этого могу использовать rowMean()
, но индексирование для меня довольно сложно.
Вы хотите этого также с помощью ID? –
Да, это идея. Вот почему я думаю в опции 'rowMeans' –
Помогло ли вам это? Если нет, я удалю. –