R中的开关错误:替换的长度为零

R中的开关错误:替换的长度为零,r,shiny,R,Shiny,所以我得到了一个错误:如果'I1','I2',…,'I6'是全局环境中的对象,ans[p]中的错误 m <- paste0("I", 1:6) ans <- numeric(6) for(p in 1:6) { ans[p] <- switch(p, `1` = get(m[1]), `2` = get(m[2]), `3` = get(m[3]),

所以我得到了一个错误:如果'I1','I2',…,'I6'是全局环境中的对象,ans[p]中的错误

m <- paste0("I", 1:6)

ans <- numeric(6)
for(p in 1:6) {
        ans[p] <- switch(p, 
           `1` =  get(m[1]), 
           `2` = get(m[2]), 
           `3` = get(m[3]),
           `4` = get(m[4]),
           `5` = get(m[5]),
           `6` = get(m[6])
  }

m什么是
输入
。它是一个data.frame吗?我认为
“input$I1”
中缺少了一些东西。您需要
$
还是您创建的对象?i、 e.您是否创建了一个类似于
input的数据框?您能否显示
m
dput
,即
dput(m)
您可能创建了
I1
I2
I6
作为全局环境中的对象,您正试图基于闪亮的“输入”获取值。从帖子上看还不清楚,好吧,等一下,让我把我的全部代码都发出来。谢谢你的回复,但我担心这帮不了什么忙。输入值是文本(字符串值),我想根据v1到v6的值按降序排序。i、 e m[1]的字符串值与v1相关联,如果v1v1
的条件操作不适用于
开关
,因为开关正在检查要匹配的键,然后返回该键的值。OK更新,只是用字符串替换了m向量。我理解,但开关不必检查任何大于或小于,我事先把瓦尔分类。
m <- paste0("I", 1:6)

ans <- numeric(6)
for(p in 1:6) {
        ans[p] <- switch(p, 
           `1` =  get(m[1]), 
           `2` = get(m[2]), 
           `3` = get(m[3]),
           `4` = get(m[4]),
           `5` = get(m[5]),
           `6` = get(m[6])
  }