R, Как установить атрибуты имен строк как числовые от символа? - PullRequest
0 голосов
/ 19 января 2019

Я новичок в R и хотел бы знать, как я могу установить атрибут имени строки как числовой. Я пытался отсортировать данные кадра по именам строк с помощью

df[ order(row.names(df)),]

и результат был как

       A    B    C    D    E
1     13    6    4    4    3
10    16    5    3    8    3
100    6    4   12   14    5
101    2   14   15    3   10
102    5    2    2    9    5
103    9    1   12    3   15
104   15    1    1    8    2
105    2   10   14    7    4
106    6    2   10    2    9
107    3    1    1    3   22
108   11    4    1    6   15
109    4   29    2    6    2
11     6   29    1    4    1

Я пытался

row.names(df) <- attr(df, "row.names")
row.names(df) <- as.numeric(row.names(df))

Но когда я снова проверяю имя строки, оно возвращается к

[1] "character"           "vector"              "data.frameRowLabels" "SuperClassMethod"   

Я не знаю, что делать .. Пожалуйста, помогите мне

1 Ответ

0 голосов
/ 19 января 2019

Из справки R на ?row.names:

Все фреймы данных имеют атрибут имен строк, символьный вектор длины, количество строк без дубликатов и пропущенных значений.

Это означает, что имена строк всегда будут символьным вектором. Вы должны будете использовать обходные пути, как предложено в комментариях, чтобы сделать их «пригодными для использования» в качестве целых чисел, в основном всегда принудительно. Можно предположить, что вы создаете столбец id целого класса и не используете row.names в качестве идентификатора:

df$id <- as.integer(row.names(df)) 
df[order(df$id), ]

Пропуск row.names также, кажется, является подходом для переосмысления популярных фреймов данных, таких как data.table или tibble - ни один из них не использует имена строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...