将字符输入转换为整数向量[r]

时间:2016-02-15 01:37:14

标签: r xlsx

如何将"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不知道如何处理行规范,因为它当前正在将其作为字符串读取。

1 个答案:

答案 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