【问题标题】:Import files using key words使用关键字导入文件
【发布时间】:2017-04-07 10:08:39
【问题描述】:

我想使用部分名称导入图像文件。我有 100 个 .tif 图像,其名称由 3 个不同的元素组成,例如 Ai、Bi 和 Ci:“A1 B1 C1.tif”、“A1 B2 C1.tif”、“A1 B1 C2.tif”、“ A2 B1 C1.tif"... 我在代码开头定义了Ai、Bi和Ci,想调用包含这3个元素的文件。

我尝试了一些没有机会正确的选项,但找不到更好的选择:

f = readTiff(Ai Bi Ci)
f = readTiff(Ai, Bi, Ci)
f = readTiff("Ai Bi Ci")

同样使用 readImage 和 file.name。 getwd 给出了正确的路径。 提前谢谢你。

【问题讨论】:

    标签: r image import


    【解决方案1】:

    您可以使用paste 命令将字符串粘合在一起。

    # for i for A, j for B selection and k for C selection
    my.filename <- paste("A", i, " B", j, " C", k, ".tif", sep = "")
    

    所以如果你想导入 A1 B2 C2.tif

    i <- 1
    j <- 2
    k <- 2
    my.filename <- paste("A", i, " B", j, " C", k, ".tif", sep = "")
    

    注意 paste0 默认为 sep = "" 所以paste0("A", i, " B", j, " C", k, ".tif")

    结果为 my.filename

     1)  "A1 B2 C2.tif"
    

    如果您正在使用路径,那么:

    my.filename <- paste("A", i, " B", j, " C", k, ".tif", sep = "")
    my.path <- getwd() # or set this
    readTiff(file.path(my.path, my.filename))
    

    如果您想在循环中处理 i、j、k 的所有组合,则可以使用 file.exists,如果是,则导入它。

    注意:readTiff 使用的是哪个包?如果您收到“找不到对象”错误,请不要忘记确保此包已加载到您的脚本中,并使用 library(thispackage)

    【讨论】:

    • 这样就可以了,非常感谢!我不知道 paste 可以在这种情况下使用。
    • 有太多糟糕的早晨,因为我忘了装一个包裹,所以我想我可能会把它扔进去!我在我的配置中找不到readTiff。很高兴它现在工作正常。
    • 对不起,我在这里打错了,当然是 readTIFF。它在我的代码中正确编写,但并没有使它变得更好;-)顺便说一句,感谢您的提示->我将尝试运行循环并创建现有标题组合的列表,然后将代码应用到所有现有文件。
    猜你喜欢
    • 2019-04-24
    • 2014-09-15
    • 2018-03-26
    • 1970-01-01
    • 2018-01-23
    • 2021-11-24
    • 2019-07-02
    • 2016-10-09
    相关资源
    最近更新 更多