在R中的数据框中对字符串进行排序

时间:2017-05-21 19:22:07

标签: r sorting dataframe

如何以升序方式对数据框内的列元素进行排序?

例如,我有:

表< -data.frame(col1 = c(“w d f”,“g t y”,“c d a”,“o w q”))

   col1
   w d f
   g t y
   c d a
   o w q

我想要

   col1
   d f w
   g t y
   a d c
   o q w

2 个答案:

答案 0 :(得分:1)

我们将'col1'按空格分成listsort元素,方法是将元素(sapply)和paste循环在一起

table$col1 <- sapply(strsplit(as.character(table$col1), ' '), 
                        function(x) paste(sort(x), collapse=' '))
table$col1
#[1] "d f w" "g t y" "a c d" "o q w"

答案 1 :(得分:0)

sort_c <- function(x){
  strsplit(as.character(x),"") %>% unlist() %>% sort() %>% str_c(collapse="")
}

apply(table,1,sort_social_q) %>% as.data.frame()

输出: 1 dfw 2克 3个 4 oqw