按字母顺序对单元格进行R排序

按字母顺序对单元格进行R排序,r,dataframe,text,text-mining,R,Dataframe,Text,Text Mining,以下是我的示例数据: id text 1 1 ['a','good', 'fresh', 'apple'] 2 2 ['fresh', 'apple', 'good'] 3 3 ['bad', 'apple'] id <- c(1,2,3) text <- c("['a','good', 'fresh', 'apple']","['fresh', 'apple', 'good']"," [

以下是我的示例数据:

id                           text
1  1 ['a','good', 'fresh', 'apple']
2  2     ['fresh', 'apple', 'good']
3  3               ['bad', 'apple']

id <- c(1,2,3)
text <- c("['a','good', 'fresh', 'apple']","['fresh', 'apple', 'good']","
['bad', 'apple']")
data.frame(id,text)
我尝试过这个代码,但没有成功

data[lapply(strsplit(as.character(data$Lem), ','), sort)),]

大部分工作都是在括号和引号中输入和输出它。如果子字符串包含逗号,则此操作无效。我建议每次运行一行,以了解每个步骤中发生的情况

library(stringr)
library(magrittr)
df$sorted_text = str_replace_all(text, "\\[|\\]|'", "") %>%
    str_split(",") %>%
    lapply(str_trim) %>%
    lapply(sort) %>%
    lapply(function(x) paste("'", x, "'", sep = "", collapse = ", ")) %>%
    unlist %>%
    paste0("[", ., "]")
df
#   id                           text                     sorted_text
# 1  1 ['a','good', 'fresh', 'apple'] ['a', 'apple', 'fresh', 'good']
# 2  2     ['fresh', 'apple', 'good']      ['apple', 'fresh', 'good']
# 3  3               ['bad', 'apple']                ['apple', 'bad']

大部分工作都是在括号和引号中输入和输出它。如果子字符串包含逗号,则此操作无效。我建议每次运行一行,以了解每个步骤中发生的情况

library(stringr)
library(magrittr)
df$sorted_text = str_replace_all(text, "\\[|\\]|'", "") %>%
    str_split(",") %>%
    lapply(str_trim) %>%
    lapply(sort) %>%
    lapply(function(x) paste("'", x, "'", sep = "", collapse = ", ")) %>%
    unlist %>%
    paste0("[", ., "]")
df
#   id                           text                     sorted_text
# 1  1 ['a','good', 'fresh', 'apple'] ['a', 'apple', 'fresh', 'good']
# 2  2     ['fresh', 'apple', 'good']      ['apple', 'fresh', 'good']
# 3  3               ['bad', 'apple']                ['apple', 'bad']