R 基于另一个向量对字符向量进行排序
我想同时对第1列和第2列进行排序 数据R 基于另一个向量对字符向量进行排序,r,string,R,String,我想同时对第1列和第2列进行排序 数据 df <- structure(list(Column1 = c("italy, france, antarctica, brazil", "kenya, canada, spain, russia, japan"), Column2 = c("warm, cold, cold, warm", "warm, cold, warm, cold, cold")), cla
df <- structure(list(Column1 = c("italy, france, antarctica, brazil",
"kenya, canada, spain, russia, japan"), Column2 = c("warm, cold, cold, warm",
"warm, cold, warm, cold, cold")), class = "data.frame", row.names = c(NA, -2L))
专栏1
专栏2
意大利、法国、南极洲、巴西
温暖,寒冷,寒冷,温暖
肯尼亚、加拿大、西班牙、俄罗斯、日本
温暖,寒冷,温暖,寒冷,寒冷
使用order(第1列)
(用数据替换第1列)获取具有排序顺序的向量,并使用此命令对两者进行排序。如果是数据帧
,则变为
df[订单(df$“第1列”),]
再次用适当的名称替换df
和“第1列”
。使用order(第1列)
(用数据替换第1列)获得排序顺序的向量,并使用该向量对两者进行排序。如果是数据帧
,则变为
df[订单(df$“第1列”),]
再次用适当的名称替换
df
和列1
。将逗号上的列1
和列2
拆分为新行,排列
值并再次汇总排序的行
library(dplyr)
df %>%
mutate(row = row_number()) %>%
tidyr::separate_rows(Column1, Column2, sep = ',\\s*') %>%
arrange(row, Column1, Column2) %>%
group_by(row) %>%
summarise(across(c(Column1, Column2), toString)) %>%
select(-row) -> result
result
# Column1 Column2
# <chr> <chr>
#1 antarctica, brazil, france, italy cold, warm, cold, warm
#2 canada, japan, kenya, russia, spain cold, cold, warm, cold, warm
库(dplyr)
df%>%
变异(行=行编号())%>%
tidyr::单独的_行(第1列、第2列、sep='、\\s*)%>%
排列(行、列1、列2)%>%
分组依据(行)%>%
总结(跨越(c(第1列、第2列)、toString))%>%
选择(-row)->结果
结果
#第1栏第2栏
#
#南极洲,巴西,法国,意大利冷,暖,冷,暖
#2加拿大、日本、肯尼亚、俄罗斯、西班牙冷、冷、暖、冷、暖
数据
df <- structure(list(Column1 = c("italy, france, antarctica, brazil",
"kenya, canada, spain, russia, japan"), Column2 = c("warm, cold, cold, warm",
"warm, cold, warm, cold, cold")), class = "data.frame", row.names = c(NA, -2L))
df将逗号上的Column1
和Column2
拆分为新行,排列
值并再次汇总排序的行
library(dplyr)
df %>%
mutate(row = row_number()) %>%
tidyr::separate_rows(Column1, Column2, sep = ',\\s*') %>%
arrange(row, Column1, Column2) %>%
group_by(row) %>%
summarise(across(c(Column1, Column2), toString)) %>%
select(-row) -> result
result
# Column1 Column2
# <chr> <chr>
#1 antarctica, brazil, france, italy cold, warm, cold, warm
#2 canada, japan, kenya, russia, spain cold, cold, warm, cold, warm
库(dplyr)
df%>%
变异(行=行编号())%>%
tidyr::单独的_行(第1列、第2列、sep='、\\s*)%>%
排列(行、列1、列2)%>%
分组依据(行)%>%
总结(跨越(c(第1列、第2列)、toString))%>%
选择(-row)->结果
结果
#第1栏第2栏
#
#南极洲,巴西,法国,意大利冷,暖,冷,暖
#2加拿大、日本、肯尼亚、俄罗斯、西班牙冷、冷、暖、冷、暖
数据
df <- structure(list(Column1 = c("italy, france, antarctica, brazil",
"kenya, canada, spain, russia, japan"), Column2 = c("warm, cold, cold, warm",
"warm, cold, warm, cold, cold")), class = "data.frame", row.names = c(NA, -2L))
df非常感谢您提供此解决方案!我将尝试在具有更多列的更大数据帧上实现此解决方案。非常感谢您使用dplyr的解决方案,因为我喜欢这个软件包!!非常感谢您提供此解决方案!我将尝试在具有更多列的更大数据帧上实现此解决方案。非常感谢您使用dplyr的解决方案,因为我喜欢这个软件包!!谢谢,我试过了,但是没有得到解决,但是谢谢你的时间。谢谢,我试过了,但是没有得到解决,但是谢谢你的时间。