【发布时间】:2021-08-20 10:31:05
【问题描述】:
这里是上下文:我在一个 R 闪亮的 Web 应用程序上工作。用户上传一个数据框。然后,他使用 selectInput 选择一定 n 个列。所选的列数可以从 1 到 6 不等。
基于此列数,我想自动生成适当数量的嵌套 for 循环。那时,我使用 if() 条件来测试每个可能选择的列数。 我想传递所选每一列的每个唯一值。这使我的代码很长:
my_columns = input$colnames #The user selects column names
if(length(mycolumns) == 1){
for(var1 in unique(mydataframe[,my_columns[1]])){
...
}
}
if(length(mycolumns) == 2){
for(var1 in unique(mydataframe[,my_columns[1]])){
for(var2 in unique(mydataframe[,my_columns[2]])){
...
}
}
}
if(length(mycolumns) == 3){
for(var1 in unique(mydataframe[,my_columns[1]])){
for(var2 in unique(mydataframe[,my_columns[2]])){
for(var3 in unique(mydataframe[,my_columns[3]])){
...
}
}
}
}
等等……
有没有办法避免这种情况?
谢谢
【问题讨论】:
标签: r for-loop input shiny nested-loops