Значение NA после группировки данных в R - PullRequest
0 голосов
/ 03 апреля 2020

Я уверен, что вы сможете мне помочь. У меня есть это df:

    time power  hr fr VE   VO2  VCO2 PETCO2   VES   QC  IC WCI RVSi RVS   VTD   FE          id training
1  00:15    25  92 23 23 0.777 0.677  39.66  86.0  7.8 3.9 4.7 1819 901 137.5 62.7 AC12-PRD-C1   linear
2  00:30    25  90 22 23 0.744 0.680  39.08  92.4  8.5 4.2 5.1 1657 821 146.4 63.1 AC12-PRD-C1   linear
3  00:46    25  86 21 25 0.761 0.728  38.76  91.4  8.3 4.1 5.0 1709 846 149.6 61.1 AC12-PRD-C1   linear
4  01:00    25  87 25 20 0.674 0.583  39.67  84.8  7.5 3.7 4.5 1890 936 138.6 61.3 AC12-PRD-C1   linear
5  01:15    40  93 25 23 0.808 0.689  39.00  86.0  7.7 3.8 4.6 1832 907 146.4 58.8 AC12-PRD-C1   linear
6  01:31    40  91 22 25 0.868 0.766  39.40  88.1  8.1 4.0 4.9 1745 865 137.2 64.2 AC12-PRD-C1   linear
7  01:46    40  95 22 24 0.787 0.714  38.71  88.9  8.2 4.1 4.9 1729 857 142.2 62.4 AC12-PRD-C1   linear
8  01:59    40  94 23 23 0.816 0.691  41.37  86.5  8.2 4.0 4.9 1732 858 140.7 61.5 AC12-PRD-C1   linear
9  02:14    55  98 24 25 0.921 0.784  41.02  90.8  8.6 4.3 5.2 1641 813 148.5 61.1 AC12-PRD-C1   linear
10 02:30    55 100 23 26 0.935 0.825  41.19  93.2  9.1 4.5 5.5 1555 770 146.9 63.4 AC12-PRD-C1   linear
11 02:44    55 101 23 28 0.989 0.900  41.54  94.7  9.5 4.7 5.7 1486 736 153.6 61.6 AC12-PRD-C1   linear
12 02:59    55 100 21 28 0.960 0.907  41.89  94.8  9.5 4.7 5.7 1480 733 152.3 62.3 AC12-PRD-C1   linear
13 03:16    70 108 22 32 1.050 1.008  41.12  92.6  9.4 4.6 5.6 1505 745 144.2 64.2 AC12-PRD-C1   linear
14 03:29    70 108 24 33 0.994 0.982  41.16  93.7 10.0 4.9 6.0 1423 705 144.0 65.1 AC12-PRD-C1   linear
15 03:46    70 110 24 32 1.121 1.066  42.98  95.9 10.4 5.1 6.2 1358 673 147.5 65.0 AC12-PRD-C1   linear
16 03:57    70 113 22 33 1.136 1.132  42.80  93.1 10.3 5.1 6.2 1371 679 147.3 63.2 AC12-PRD-C1   linear
17 04:14    85 115 23 37 1.227 1.204  42.53 101.4 11.3 5.6 6.8 1256 622 146.3 69.3 AC12-PRD-C1   linear
18 04:31    85 118 23 42 1.193 1.269  40.75 101.1 11.5 5.7 6.9 1224 606 155.9 64.8 AC12-PRD-C1   linear
19 04:44    85 120 22 38 1.164 1.241  42.64  89.4 10.5 5.2 6.3 1347 667 142.4 62.7 AC12-PRD-C1   linear
20 05:00    85 122 23 41 1.212 1.291  41.45  97.6 11.6 5.8 7.0 1216 603 151.3 64.5 AC12-PRD-C1   linear
21 05:16   100 122 25 47 1.333 1.463  40.82 105.1 12.7 6.3 7.6 1112 551 152.8 68.8 AC12-PRD-C1   linear
22 05:30   100 126 26 48 1.289 1.488  40.23 100.3 12.3 6.1 7.4 1151 570 151.4 66.3 AC12-PRD-C1   linear
23 05:46   100 130 27 48 1.358 1.527  41.46  97.5 12.3 6.1 7.4 1152 571 154.3 63.2 AC12-PRD-C1   linear
24 06:01   100 130 26 50 1.403 1.596  41.87 100.7 12.9 6.4 7.7 1096 543 158.4 63.6 AC12-PRD-C1   linear
25 06:15   115 131 30 52 1.463 1.633  41.37  99.8 13.0 6.4 7.8 1092 541 159.5 62.8 AC12-PRD-C1   linear
26 06:31   115 136 27 56 1.494 1.756  40.54 108.0 14.2 7.0 8.5  993 492 157.2 68.7 AC12-PRD-C1   linear
27 06:44   115 137 27 55 1.441 1.740  40.36 105.6 14.2 7.0 8.5  993 492 159.8 66.2 AC12-PRD-C1   linear
28 07:00   115 139 28 60 1.593 1.912  40.64 104.5 14.4 7.1 8.7  978 484 155.4 67.3 AC12-PRD-C1   linear

Когда я использую этот код для группировки своих данных:

df_sum <- dftest %>% 
  group_by(id, power) %>%
  summarise_at(vars(-time), mean) %>% 
  mutate(percent_VO2 = VO2/max(VO2)*100,
         percent_power = power/max(power)*100)

Я получил NA значения в столбце training, и я не знаю почему, потому что это был персонаж в начале. Я уже использовал этот код, но ничего не изменилось:

df_sum <- dftest %>% 
  group_by(id, power) %>% 
  mutate_at(vars(18), as.character) %>%
  summarise_at(vars(-time), mean) %>% 
  mutate(percent_VO2 = VO2/max(VO2)*100,
         percent_power = power/max(power)*100)

У кого-нибудь есть решение?

спасибо!

1 Ответ

0 голосов
/ 03 апреля 2020

Попробуйте использовать это:

library(dplyr)

df %>% 
  type.convert(as.is = TRUE) %>%
  group_by(id, power, training) %>% 
  summarise_if(is.numeric, mean) %>%
  group_by(id) %>%
  mutate(percent_VO2 = VO2/max(VO2)*100,
         percent_power = power/max(power)*100)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...