【问题标题】:Convert character input to vector of integers [r] [duplicate]将字符输入转换为整数向量 [r] [重复]
【发布时间】:2016-02-15 01:37:13
【问题描述】:

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

【问题讨论】:

  • 谢谢。在你指出我之前,我没有找到其他答案。

标签: r xlsx


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多