【发布时间】:2019-06-20 08:09:30
【问题描述】:
我在 R 中运行以下 if 条件没有任何问题:
nrow<-ifelse(S1_input, 1, ifelse(S2_input & nchar(bands)>40, 2, ifelse(S1_S2_input & nchar(bands)>40, 3, ifelse (S2_input & nchar(bands)<40, 4, 5))))
其中S1_input、S2_input、S1_S2_input 是逻辑变量(TRUE / FALSE)(只有一个可以是TRUE,其余是FALSE),bands 只是一个字符串变量
我正在尝试使用 Jupiter Notebook 共享我的代码,但同一行出现错误,但仅当 S1_input 为 FALSE 时才出现错误
S2_input & nchar(bands) > 40 中的错误:只能对数字、逻辑或复杂类型进行操作
追溯:
- ifelse(S1_input, 1, ifelse(S2_input & nchar(bands) > 40, 2,
ifelse(S1_S2_input &
. nchar(bands) > 40, 3, ifelse(S2_input && nchar(bands) . 4, 5))))- ifelse(S2_input & nchar(bands) > 40, 2, ifelse(S1_S2_input &
. nchar(bands) > 40, 3, ifelse(S2_input && nchar(bands) . 4, 5)))
【问题讨论】:
-
这可能不相关,但我注意到您混合并匹配 & 和 &&,它们是混合向量和标量。这是故意的吗?
-
好点,这是我之前的测试中的一个错字。我已经在问题中更改了它
标签: r if-statement jupyter-notebook conditional-statements