如何使用R中的readline()提示用户删除多个列

如何使用R中的readline()提示用户删除多个列,r,R,我试图编写一段代码,允许用户决定从R中的表中删除多少列。我试图执行的步骤如下: 1) 打印表的列标题 2) 询问用户是否要删除任何列。如果回答是“是”,则继续删除列。这是一个循环,以防用户想要删除多个列。 3) 一旦用户删除了列,我希望返回修改过的表(删除了不需要的列),以便以后在脚本中使用。 4) 如果用户根本不想删除任何列,他们可以继续,返回的表中不缺少任何列 我目前的代码有两个主要问题: 1) 循环只工作一次(仅删除一列)。循环确实有效(如果我一直回答“Y”,它会不断提示我),但是最终,返

我试图编写一段代码,允许用户决定从R中的表中删除多少列。我试图执行的步骤如下:

1) 打印表的列标题 2) 询问用户是否要删除任何列。如果回答是“是”,则继续删除列。这是一个循环,以防用户想要删除多个列。 3) 一旦用户删除了列,我希望返回修改过的表(删除了不需要的列),以便以后在脚本中使用。 4) 如果用户根本不想删除任何列,他们可以继续,返回的表中不缺少任何列

我目前的代码有两个主要问题:

1) 循环只工作一次(仅删除一列)。循环确实有效(如果我一直回答“Y”,它会不断提示我),但是最终,返回的对象只删除了1列(循环开始时删除的第一列)。我试图找出是否有办法让用户使用readline写入多个输入,但是我找到的答案并没有真正帮助我

2) 如果我不想删除任何列,并且在第一次提示输入时输入“否”,则会出现非常奇怪的情况,返回的是删除了第一列的表

我仍然是一个编码新手,我意识到这可能不是做我想做的事情的最佳方式。非常感谢您的建议/反馈

my_data<-read.table(file.choose(),header=TRUE)
print(names(my_data)
for (column in my_data) {
    remove_columns<-readline("Would you like to remove any columns? \n")
    if(remove_columns=="Y" || remove_columns=="y") {
        my_data_new<-my_data[,-!names(my_data) %in% c(readline("Which columns would you like to remove? \n"))]

    } else {
        return(my_data_new)
    }}

my_data我想你在寻找
while
循环

my_data <- read.table(file.choose(), header = TRUE)
print(names(my_data)

while (TRUE) {
    remove_columns <- readline("Would you like to remove any columns? \n")

    if (remove_columns == "Y" || remove_columns == "y") {
        my_data <- my_data[,-!names(my_data) %in% c(readline("Which columns would you like to remove? \n"))]
    } else {
       break
    }
}

我的数据太棒了!!这是一个非常简单的解决方案,效果非常好!我花了一整天的时间想弄明白这一点,我应该早点把我的问题发出去,省得自己头疼。谢谢你,伊万克
if(tolower(remove_columns)=“y”)
保存键入和重复。还有,
-是危险的,可能会产生意外结果。