У меня большой набор данных, пример которого приведен ниже:
# A tibble: 450 x 546
matchcode idstd year country wt region income industry sector ownership exporter c201 c202 c203a c203b c203c c203d c2041 c2042 c205a c205b1 c205b2 c205b3 c205b4 c205b5 c205b6 c205b7 c205b8 c205b9 c205b10 c205c c205d c206a c206b c2071
<int+lbl> <dbl> <dbl> <int+l> <dbl> <dbl+> <dbl+> <dbl+lb> <dbl+> <dbl+lbl> <dbl+lb> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl+> <dbl+> <dbl+> <dbl+> <dbl+> <dbl+> <dbl+> <dbl+> <dbl+> <dbl+l> <dbl> <dbl> <dbl> <dbl> <dbl>
1 "BGD 200~ 2474 2002 Bangla~ 0.9 6 1 3 1 2 1 1994 2 100 0 0 NA 2 NA NA NA NA NA NA NA NA NA NA NA NA 1 2 NA NA 1
2 "BGD 200~ 2717 2002 Bangla~ 1.2 6 1 2 1 2 2 1986 4 100 0 0 NA 2 NA NA NA NA NA NA NA NA NA NA NA NA 1 1 2 2 2
3 "BGD 200~ 2410 2002 Bangla~ 0.8 6 1 3 1 2 1 1999 4 100 0 0 NA 2 NA NA NA NA NA NA NA NA NA NA NA NA 2 NA NA NA 1
4 "BRA 200~ 14917 2003 Brazil~ NA 4 2 8 1 2 2 1984 2 100 0 0 0 2 NA 50 1 NA NA NA NA NA NA NA NA 1 1 1 1 2 3
5 "BRA 200~ 14546 2003 Brazil~ NA 4 2 2 1 2 2 1976 2 100 0 0 0 2 NA 50 1 NA NA NA NA NA NA NA NA 1 1 1 1 2 4
6 "BRA 200~ 14709 2003 Brazil~ NA 4 2 3 1 2 2 1990 2 100 0 0 0 2 NA 100 NA 1 NA NA NA NA NA NA NA NA 1 1 1 2 4
7 "KHM 200~ 16475 2003 Cambod~ NA 2 1 20 2 2 2 1999 2 100 0 0 0 2 NA 100 NA NA NA 1 NA NA NA NA NA NA NA NA 1 2 1
8 "KHM 200~ 16298 2003 Cambod~ NA 2 1 4 3 2 2 1993 4 100 0 0 0 2 NA 100 1 NA NA NA NA NA NA NA NA NA 1 2 1 2 4
9 "KHM 200~ 16036 2003 Cambod~ 1.2 2 1 21 2 2 2 1997 2 100 0 0 0 2 NA 100 NA 1 NA NA NA NA NA NA NA NA 1 1 1 2 1
10 "CHN 200~ 17862 2002 China2~ 1.1 2 2 18 2 2 2 1993 3 49 0 51 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 2
, который я суммировал, используя следующее решение таблицы данных:
dfclevel= df[, lapply(.SD, weighted.mean, wt, na.rm = TRUE), .SDcols = cols, by=matchcode]
В этой операции отбрасываются 7 факторных переменных, представляющих строки, потому что, очевидно, нет взвешенного среднего для названия страны. Однако, поскольку я беру среднее значение matchcode
, которое представляет собой комбинацию года и страны, информация из тех пропущенных переменных все равно будет иметь смысл (они должны быть идентичны для каждого кода совпадения), и по этой и другим причинам я хотел бы сохранить эти столбцы.
Итак, большой вопрос, как мне это сделать? Могу ли я временно преобразовать эти факторы в числовые значения и преобразовать их обратно после применения взвешенного среднего по столбцам?