列表中n个元素的r-连接
我试图从列中读取数据,然后将所需信息连接到字符串中 到目前为止,我成功地为单个字符串输入编写了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
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"
xstrsplit
传递向量时会生成一个列表,因此需要一个*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