Я начинающий R, но до сих пор смог найти ответы на мои вопросы, прибегая к помощи. После нескольких дней поиска я все еще не могу понять это все же.
У меня есть набор данных с результатами когнитивного теста. Большинство тестов оцениваются так, чтобы более высокие оценки были лучше. ОДИН тест оценивается противоположным образом, поэтому более низкие оценки лучше (время выполнения задания). Я хочу объединить три теста (таким образом, значения из трех столбцов в моем фрейме данных), но сначала мне нужно перевернуть значения этого одного теста.
Под флипом я подразумеваю, что мое самое низкое значение (т.е. самое быстрое время завершения и лучший результат) вместо этого получает самое высокое значение, а самое высокое значение (то есть самое медленное время завершения и худший результат) получает самое низкое значение. Мои данные числовые.
Я пробовал функцию dens_rank (), а также функцию rev (). dens_rank () возвращает вектор, в котором значения ранжируются, но если разброс значений не сохраняется, а rev () только меняет порядок значений в векторе, он не меняет сами значения.
Пример кода:
> (.packages())
[1] "readxl" "rethinking" "parallel" "rstan" "StanHeaders" "uwIntroStats"
[7] "ggplot2" "dplyr" "quantreg" "SparseM" "foreign" "aod"
[13] "stats" "graphics" "grDevices" "utils" "datasets" "methods"
[19] "base"
> testresults <- seq(from = 12, to = 120, by = 2)
>
> testresults
[1] 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58
[25] 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106
[49] 108 110 112 114 116 118 120
> test.frame <- data.frame(testresults, rev(testresults), rank(testresults))
> test.frame
testresults rev.testresults. rank.testresults.
1 12 120 1
2 14 118 2
3 16 116 3
4 18 114 4
5 20 112 5
6 22 110 6
7 24 108 7
8 26 106 8
9 28 104 9
10 30 102 10
11 32 100 11
12 34 98 12
13 36 96 13
14 38 94 14
15 40 92 15
16 42 90 16
17 44 88 17
18 46 86 18
19 48 84 19
20 50 82 20
21 52 80 21
22 54 78 22
23 56 76 23
24 58 74 24
25 60 72 25
26 62 70 26
27 64 68 27
28 66 66 28
29 68 64 29
30 70 62 30
31 72 60 31
32 74 58 32
33 76 56 33
34 78 54 34
35 80 52 35
36 82 50 36
37 84 48 37
38 86 46 38
39 88 44 39
40 90 42 40
41 92 40 41
42 94 38 42
43 96 36 43
44 98 34 44
45 100 32 45
46 102 30 46
47 104 28 47
48 106 26 48
49 108 24 49
50 110 22 50
51 112 20 51
52 114 18 52
53 116 16 53
54 118 14 54
55 120 12 55
Я уверен, что упустил простое решение этой проблемы, заранее благодарю всех, кто может помочь или направит меня в правильном направлении.
Бест, Мария