列表中n个元素的r-连接

列表中n个元素的r-连接,r,string,list,R,String,List,我试图从列中读取数据,然后将所需信息连接到字符串中 到目前为止,我成功地为单个字符串输入编写了R脚本,但我无法为n元素编写它 reprows <- strsplit("Day1_XExp2B3_500x_Y_Z", "_", fixed = T) lenreprows <- length(reprows[[1]]) temprepnamelisttopaste <- c(2:(lenreprows-2)) temprepname <- paste(sapply(repro

我试图从列中读取数据,然后将所需信息连接到字符串中

到目前为止,我成功地为单个字符串输入编写了R脚本,但我无法为
n
元素编写它

reprows <- strsplit("Day1_XExp2B3_500x_Y_Z", "_", fixed = T)
lenreprows <- length(reprows[[1]])
temprepnamelisttopaste <- c(2:(lenreprows-2))
temprepname <- paste(sapply(reprows[temprepnamelisttopaste]),collapse='.')
我的输出应该是:

XExp2B3.500x
怎么样

## a function for re-concatenation
rc <- function (u) paste0(u[2:(length(u)-2L)], collapse = ".")
## main code
unlist(lapply(strsplit(x, "_", fixed = T), rc))
代码给出了

#[1] "XExp2B3.500x" "XExp2B3.500x"
看起来工作不错。

怎么样

## a function for re-concatenation
rc <- function (u) paste0(u[2:(length(u)-2L)], collapse = ".")
## main code
unlist(lapply(strsplit(x, "_", fixed = T), rc))
代码给出了

#[1] "XExp2B3.500x" "XExp2B3.500x"

看起来工作正常。

strsplit
传递向量时会生成一个列表,因此需要一个
*apply
函数来处理每个结果。正则表达式可能是一个更简单的选项,具体取决于您对字符串的了解:

x <- c("Day1_XExp2B3_500x_Y_Z", "Day1_XExp2B3_500x_Y_Z")

sub("\\w+_(\\w+)_(\\w+)_._.", "\\1.\\2", x)
## [1] "XExp2B3.500x" "XExp2B3.500x"

x
strsplit
传递向量时会生成一个列表,因此需要一个
*apply
函数来处理每个结果。正则表达式可能是一个更简单的选项,具体取决于您对字符串的了解:

x <- c("Day1_XExp2B3_500x_Y_Z", "Day1_XExp2B3_500x_Y_Z")

sub("\\w+_(\\w+)_(\\w+)_._.", "\\1.\\2", x)
## [1] "XExp2B3.500x" "XExp2B3.500x"
x