如何将"c(1:10)"
等字符串转换为实际的整数向量?我的问题是我需要从包xlsx中使用read.xlsx
读取一堆文件,但我需要为每个文件读取不同的行。我有一个单独的文件,我可以作为data.frame(称之为“MyFile”)读入工作区,在一列中列出文件的名称,在另一列中列出要读取的行,但我不知道我不知道如何将字符串转换成我需要的数字。我使用正则表达式来提取它,但这听起来比我想要的更多,因为它是从"c(1:10)"
到"c(2, 4, 6:8, 21)"
的所有内容的混搭。
我试过了:
Files <- list()
for (i in 1:nrow(MyFiles)){
Files[[i]] <- read.xlsx(MyFiles$File[i],
sheetName = MyFiles$Tab[i],
rowIndex = MyFiles$Row[i])
}
但是R不知道如何处理行规范,因为它当前正在将其作为字符串读取。
答案 0 :(得分:1)
遗憾的是,有一种比eval(parse(text=
更好的方法(据我所知),但这就是我在这些情况下使用的方法。
input <- "c(1:10)"
output <- eval(parse(text=input))
output
# [1] 1 2 3 4 5 6 7 8 9 10