Сортировка символов в R - PullRequest
0 голосов
/ 27 мая 2018

У меня есть фрейм данных df, в котором я хочу отсортировать один столбец (var), который является символьным столбцом.Я использовал следующий код:

df$var=order(as.character(df$var))

эта строка кода работает без ошибок, но изменяет значения столбца на числовой тип данных.

1 Ответ

0 голосов
/ 27 мая 2018
set.seed(1)
df <- iris[sample(nrow(iris),5),]
#     Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
# 40           5.1         3.4          1.5         0.2     setosa
# 56           5.7         2.8          4.5         1.3 versicolor
# 85           5.4         3.0          4.5         1.5 versicolor
# 134          6.3         2.8          5.1         1.5  virginica
# 30           4.7         3.2          1.6         0.2     setosa

# what you tried returns numeric because order does
order(as.character(df$Species)) # [1] 5 3 4 1 2

# This "works" but sorts, the vector only, not the df
sort(as.character(df$Species)) #[1] "setosa"     "versicolor" "versicolor" "virginica"  "virginica"

# This sorts the df
df[order(df$Species),]
#     Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
# 10           4.9         3.1          1.5         0.1     setosa
# 98           6.2         2.9          4.3         1.3 versicolor
# 93           5.8         2.6          4.0         1.2 versicolor
# 135          6.1         2.6          5.6         1.4  virginica
# 141          6.7         3.1          5.6         2.4  virginica
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...