【问题标题】:Use user input to select sub directory使用用户输入选择子目录
【发布时间】:2019-10-29 16:01:30
【问题描述】:

我有一个目录,里面有多个子目录,我确实想列出子目录,然后让用户选择他想在其中读取文件的子目录。

我希望在代码继续读取里面的文件之前使用索引来输入他的选择。这是我试图列出父目录中的所有子目录的内容,但我被困在如何在读取其中的文件之前使用用户原始输入来选择子目录:

path = setwd("path to parent directory")

sub_dirs <- list.dirs(path, full.names = TRUE, recursive = TRUE)

#User raw input to be used here before listing files within
.....

#list all files
files <- dir(path, pattern = '\\.csv', full.names = FALSE)

#read files
tables <- lapply(files, read.csv)

预期的输出是一个代码,我可以在其中列出父目录中的子目录,然后允许用户输入他想要读取其中文件的子目录的索引。然后在用户输入之后,代码继续列出里面的 csv 文件,然后读取文件。

【问题讨论】:

    标签: r


    【解决方案1】:

    您可以提示用户选择带有menu(choices = sub_dirs) 的子目录。

    【讨论】:

    • 我收到此错误 dir(menu(choices = sub_dirs), pattern = "/.csv", full.names = FALSE) 中的错误:'path' 参数无效
    • menu() 返回所选选项的索引,而不是值。所以在你描述的情况下,你可能想要sub_dirs[menu(choices = sub_dirs)]
    • 这很好用,只是一个问题,我可以更改选择之前出现的消息吗?以及如何在选择后继续运行代码而不是在我选择某些内容后再次要求我选择
    • 您可以使用menu() 中的title 参数来控制消息。至于不再询问,我认为您可以将选项保存在最初设置为NULL 的变量中,在您第一次询问选择时设置它,然后在再次询问之前始终检查选项是否已经设置。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 2021-04-12
    • 2016-06-13
    • 1970-01-01
    相关资源
    最近更新 更多