Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.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,可能重复: 我有一个数据帧,其中变量是字符串。是否有方法创建另一个变量,该变量的元素与x相同,但每个变量按升序或降序排序,如下所示: x_old:trad,jfwd,qerf x_新:adrt、dfjw、efqr 必须有更简单的方法: x <- c("trad", "jfwd", "qerf") unname(sapply(x, function(i)paste(sort(unlist(strsplit(i, ""))), collapse=""))) [1] "adrt" "dfjw"

可能重复:

我有一个数据帧,其中变量是字符串。是否有方法创建另一个变量,该变量的元素与x相同,但每个变量按升序或降序排序,如下所示:

x_old:trad,jfwd,qerf

x_新:adrt、dfjw、efqr


必须有更简单的方法:

x <- c("trad", "jfwd", "qerf")
unname(sapply(x, function(i)paste(sort(unlist(strsplit(i, ""))), collapse="")))
[1] "adrt" "dfjw" "efqr"

必须有更简单的方法:

x <- c("trad", "jfwd", "qerf")
unname(sapply(x, function(i)paste(sort(unlist(strsplit(i, ""))), collapse="")))
[1] "adrt" "dfjw" "efqr"
使用虚拟数据:

strs <- c("trad", "jfwd", "qerf")
其中:

> sapply(lapply(sapply(strs, strsplit, ""), sort), paste, collapse = "")
  trad   jfwd   qerf 
"adrt" "dfjw" "efqr"
在函数中,1将字符向量的每个元素拆分为单个字符,2对这些字符集进行排序,3将它们再次粘贴在一起

通过将这些步骤封装到函数中,我们可以在一个步骤中完成这项工作:

foo <- function(x) {
    x <- strsplit(x, split = "")[[1]]
    x <- sort(x)
    paste(x, collapse = "")
}
使用虚拟数据:

strs <- c("trad", "jfwd", "qerf")
其中:

> sapply(lapply(sapply(strs, strsplit, ""), sort), paste, collapse = "")
  trad   jfwd   qerf 
"adrt" "dfjw" "efqr"
在函数中,1将字符向量的每个元素拆分为单个字符,2对这些字符集进行排序,3将它们再次粘贴在一起

通过将这些步骤封装到函数中,我们可以在一个步骤中完成这项工作:

foo <- function(x) {
    x <- strsplit(x, split = "")[[1]]
    x <- sort(x)
    paste(x, collapse = "")
}

+1解释我的一行是如何工作的@安德烈:-我想知道这是否会给我一枚预知徽章..?+1来解释我的一行是如何工作的@安德烈:我想知道这是否会给我一枚预知徽章……事实上,这是一模一样的:事实上,这是一模一样的:完美!谢谢,安德里,太好了!谢谢你,安德烈。