在函数中使用字符列表?

  • 本文关键字:字符 列表 函数 r
  • 更新时间 :
  • 英文 :


我正在使用一个函数,其中时间点需要定义为
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

最新更新