Как упорядочить фрейм данных по частичной строке (или первому слову) - PullRequest
1 голос
/ 03 августа 2020

Я новичок в R, и я самостоятельно обучаюсь c операциям.

Я хотел бы получить следующее:

County   Population
ACounty, Alabama   106242
BCounty, Alabama   362845
ACounty, Texas   242342
BCounty, Texas   293729

Я пробовал :

df<-df %>% arrange(County)
view(df)

Что заканчивается как:

County   Population
ACounty, Alabama   106242
ACounty, Texas   242342
BCounty, Alabama   362845
BCounty, Texas   293729

Ответы [ 2 ]

1 голос
/ 03 августа 2020

Вы можете разделить данные округа и штата и arrange данные в зависимости от штата.

library(dplyr)
library(tidyr)

df %>%
  separate(County, c('County', 'State'), sep = ",\\s*") %>%
  arrange(State) %>%
  unite(County, County, State, sep = ",")

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

df[order(sub('.*,', '', df$County)), ]
0 голосов
/ 03 августа 2020

Мы можем сделать это без разделения или объединения

library(dplyr)
library(stringr)
df1 %>% 
    arrange(str_remove(County, ",.*"))
#            County Population
#1 ACounty, Alabama     106242
#2   ACounty, Texas     242342
#3 BCounty, Alabama     362845
#4   BCounty, Texas     293729

данные

df1 <- structure(list(County = c("ACounty, Alabama", "BCounty, Alabama", 
"ACounty, Texas", "BCounty, Texas"), Population = c(106242L, 
362845L, 242342L, 293729L)), class = "data.frame", row.names = c(NA, 
-4L))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...