R 如何对字符向量的每个元素中的字符进行排序?
可能重复: 我有一个数据帧,其中变量是字符串。是否有方法创建另一个变量,该变量的元素与x相同,但每个变量按升序或降序排序,如下所示: x_old:trad,jfwd,qerf x_新:adrt、dfjw、efqrR 如何对字符向量的每个元素中的字符进行排序?,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 <- 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来解释我的一行是如何工作的@安德烈:我想知道这是否会给我一枚预知徽章……事实上,这是一模一样的:事实上,这是一模一样的:完美!谢谢,安德里,太好了!谢谢你,安德烈。