Сортировка символов по алфавиту в столбце? - PullRequest
0 голосов
/ 11 октября 2018

В настоящее время у меня есть следующий столбец:

Themes
toast,eggs,fruit
chocolate,eggs,milk
fruit,apple,milk

, поэтому в этом столбце есть 3 строки, я хотел бы, чтобы было сделано следующее

Themes 
eggs,fruit,toast
chocolate,eggs,milk
apple,fruit,milk 

По существу, чтобы упорядочить все значения во всехстроки должны быть в алфавитном порядке?

Как мне этого добиться?У меня есть намного больше строк, чем это, и я хотел бы, чтобы запятая, как мне нужно - я знаю, чтобы использовать strinr, но не знаю, как

Есть идеи?

1 Ответ

0 голосов
/ 11 октября 2018

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

df$Themes <- sapply(strsplit(df$Themes, ","), function(x) 
                              paste0(sort(x), collapse = ","))


df
#               Themes
#1    eggs,fruit,toast
#2 chocolate,eggs,milk
#3    apple,fruit,milk

Используя ту же логику с tidyverse

library(tidyverse)

df %>%
  rowwise() %>%
  mutate(Themes = str_c(str_sort(str_split(Themes, ",",simplify = TRUE)),
                                                        collapse = ","))

#  Themes             
#  <chr>              
#1 eggs,fruit,toast   
#2 chocolate,eggs,milk
#3 apple,fruit,milk   

данные

df <- structure(list(Themes = c("toast,eggs,fruit", "chocolate,eggs,milk", 
 "fruit,apple,milk")), .Names = "Themes", row.names = c(NA, -3L
 ), class = "data.frame")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...