我正在使用一个函数,其中时间点需要定义为Timepoints = c(x,y,z)
现在我有一个chr列表
List
$ chr: "1,2,3,4,5,6,7"
与我需要使用的时间点,已经用逗号分隔。我想在函数中使用这个列表并去掉引号,这样函数就可以读取我的时间点
Timepoints= c(1,2,3,4,5,6,7)
我尝试使用noquote(List),但这是不被接受的
我错过了什么?用noquote()
打印列表得到所需的一行字符1,2,3,4,5,6,7
1)基地R -扫描假设您有一个包含一个字符串列表如下L
所示使用scan
如图所示。
L <- list("1,2,3,4,5,6")
scan(text = L[[1]], sep = ",", quiet = TRUE)
## [1] 1 2 3 4 5 6
2) gsubfn:: strapply另一种可能是使用strapply来匹配每个数字字符串,将它们转换为数字并作为矢量返回。(我们假设这些数字没有符号或小数点,但如果需要,可以很容易地添加。)
library(gsubfn)
strapply(L[[1]], "\d+", as.numeric, simplify = unlist)
[1] 1 2 3 4 5 6
添加在评论中,发布者表示有兴趣使用字符串列表作为输入。没有指定输出,但是如果我们假设我们想要一个数字向量列表,那么
L2 <- list(A = "1,2,3,4,5,6", B = "1,2")
Scan <- function(x) scan(text = x, sep = ",", quiet = TRUE)
lapply(L2, Scan)
## $A
## [1] 1 2 3 4 5 6
##
## $B
## [1] 1 2
library(gsubfn)
strapply(L2, "\d", as.numeric)
## $A
## [1] 1 2 3 4 5 6
##
## $B
## [1] 1 2
这是strsplit
的一个选项。
as.integer(unlist(strsplit(L[[1]], ",")))
#[1] 1 2 3 4 5 6