Как обрабатывать вектор символов как целые числа или числа c в R - PullRequest
1 голос
/ 21 июня 2020

Я хотел бы провести небольшое исследование о скалолазании. Набор данных содержит несколько столбцов с оценками лазания, например: 1,2,3,4a, 4b, 4 c, 5a, 5b, 5 c, 6a, 6a +, 6b, 6b +, 6 c, 6c +. , 7a, 7a + ....

Я бы хотел использовать их как числа. от 1 до 28 (от 1 до 9 c). Пытался преобразовать в коэффициент, но функции построения графиков не могут обрабатывать их как данные для оси. Также нельзя использовать на них суммирующие функции (например, среднее). Это способ присвоить значения символам?

Спасибо!

1 Ответ

0 голосов
/ 21 июня 2020

Приведем пример данных. Обратите внимание, что в этом фрейме данных оценки расположены не в определенном порядке, некоторые значения отсутствуют, а некоторые повторяются:

df <- data.frame(grades = c('1','4a','3', '3', '3', '2','5a','4a','4b','4c'))
> df
   grades
1       1
2      4a
3       3
4       3
5       3
6       2
7      5a
8      4a
9      4b
10     4c

Мы можем создать числовой порядок c с помощью функции factor , указав все уникальные уровни в их предполагаемом порядке, с помощью «order = T»:

df$grades_factor = factor(df$grades, levels = c('1','2','3','4a','4b','4c','5a'), ordered = T)

Наконец, мы можем просто преобразовать этот новый столбец в numeri c, чтобы выявить базовые числовые значения:

df$grades_num = as.numeric(df$grades_factor)

  grades grades_factor grades_num
1       1             1          1
2      4a            4a          4
3       3             3          3
4       3             3          3
5       3             3          3
6       2             2          2
7      5a            5a          7
8      4a            4a          4
9      4b            4b          5
10     4c            4c          6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...