Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何按部分字符串(或第一个字)对数据帧排序_R - Fatal编程技术网

R 如何按部分字符串(或第一个字)对数据帧排序

R 如何按部分字符串(或第一个字)对数据帧排序,r,R,我对R非常陌生,我在自学基本操作 我想提出以下意见: County Population ACounty, Alabama 106242 BCounty, Alabama 362845 ACounty, Texas 242342 BCounty, Texas 293729 我试过: df<-df %>% arrange(County) view(df) 您可以划分县和州,并根据州排列数据 library(dplyr) library(tidyr) df %&

我对R非常陌生,我在自学基本操作

我想提出以下意见:

County   Population
ACounty, Alabama   106242
BCounty, Alabama   362845
ACounty, Texas   242342
BCounty, Texas   293729
我试过:

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

您可以划分县和州,并根据州排列数据

library(dplyr)
library(tidyr)

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

在base R中,您可以通过删除所有内容直到逗号来仅保留状态信息,并使用
order
按状态排列数据

df[order(sub('.*,', '', df$County)), ]

我们可以做到这一点,而不需要分裂或团结

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
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))