Изменение порядка строк во фрейме данных (R) - PullRequest
0 голосов
/ 27 февраля 2019

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

df<- InsectSprays
df2 <- aggregate(df$count,
                        by = list(df$spray),
                        FUN = mean)
Group.1 x
A       14.500000
B       15.333333
C       2.083333
D       4.916667
E       3.500000
F       16.666667

Но тогда, если я хочу переупорядочить данные, первый столбец действительно переупорядочивается, но соответствующее значение не перемещается:

df2$Group.1 <- factor(c('B', 'D', 'A', 'C', 'E', 'F'))  

Group.1 x
B       14.500000
D       15.333333
A       2.083333
C       4.916667
E       3.500000
F       16.666667

Любые идеикак это исправить?

1 Ответ

0 голосов
/ 27 февраля 2019

Вам необходимо изменить столбец Group.1 на коэффициент.После этого вы можете использовать order для изменения порядка строк на основе Group.1 следующим образом.

df2$Group.1 <- factor(df2$Group.1, levels = c('B', 'D', 'A', 'C', 'E', 'F'))

df3 <- df2[order(df2$Group.1), ]

df3
#   Group.1         x
# 2       B 15.333333
# 4       D  4.916667
# 1       A 14.500000
# 3       C  2.083333
# 5       E  3.500000
# 6       F 16.666667

DATA

df2 <- read.table(text = "Group.1 x
A       14.500000
B       15.333333
C       2.083333
D       4.916667
E       3.500000
F       16.666667",
                      header = TRUE, stringsAsFactors = FALSE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...