Исправление порядка значений столбцов в r - PullRequest
0 голосов
/ 05 мая 2020

У меня есть следующий фрейм данных:

    state   state_abbr fips   pop       cases   deaths      percent_cases    total_starbucks
1   Alabama     AK      1    4903185    7888      290        0.16087502           28
2   Alaska      AL      2    731545     366       7          0.05003110           52
3   Arizona     AZ      4    7278717    8640      362        0.11870224           267
4   Arkansas    CA      5    3017804    3431      76         0.11369194           2131
5   California  CO      6    39512223   55072     2235       0.13937965           350
6   Colorado    DC      8    5758736    16527     840        0.28699006           65
7   Connecticut DE      9    3565287    29287     2436       0.82144860           16
8   Delaware    FL      10   973764     5208      177        0.53483185           438
9   District of Columbia GA 11  705749  5016      251        0.71073427           189
10  Florida     HI      12   21477737   36070     1378       0.16794134           58

И так далее и так далее по списку. Однако, если вы заметили, столбцы state_abbr и state упорядочены по-разному, что портит остальную часть фрейма данных. Значения state_abbr для AR, CT и ID по какой-то причине помещаются в конец списка после штата Вайоминг. Я хотел бы знать, как исправить это, будь то изменение вручную, исправление с помощью одной строки кода или что-то еще. Меня не особо волнует, насколько красив код, если он работает.

Вот мой код r для справки. Это тоже не очень красиво, но я просто хочу, чтобы все заработало, прежде чем я сделаю его красивым. поэтому мне нужно было добавить этот столбец, чтобы соединить этот фрейм данных с corona_df фреймом данных.

1 Ответ

2 голосов
/ 05 мая 2020

Я бы сделал справочную таблицу, которую вы можете сделать со встроенными переменными state.name и state.abb, удалил бы столбец, которому вы не доверяете, из своих данных и присоединился бы к справочной таблице.

Примерно так:

state_lookup = data.frame(state = c(state.name, "District of Columbia"), state_abbr = c(state.abbr, "DC"), stringsAsFactors = FALSE)

corona_df = corona_df %>% 
  select(-state_abbr) %>%
  left_join(state_lookup)

Я бы посоветовал вам отследить, где возникла эта ошибка, и исправить ее в источнике, иначе некоторые ваши данные могут уже быть неправильными.

...