我正在尝试计算水平曲线列表,如下所示:
a = 0:10
colnames(c) = c("x1","w",paste0("x2+3x1",ifelse(3*a+1<0,"","+"),a+1,"=0"))
colnames(c)
[1] "x1" "w" "x2+3x1-9=0" "x2+3x1-8=0" "x2+3x1-7=0"
[6] "x2+3x1-6=0" "x2+3x1-5=0" "x2+3x1-4=0" "x2+3x1-3=0" "x2+3x1-2=0"
[11] "x2+3x1-1=0" "x2+3x10=0" "x2+3x1+1=0" "x2+3x1+2=0" "x2+3x1+3=0"
[16] "x2+3x1+4=0" "x2+3x1+5=0" "x2+3x1+6=0" "x2+3x1+7=0" "x2+3x1+8=0"
[21] "x2+3x1+9=0" "x2+3x1+10=0" "x2+3x1+11=0"
但是,不要打印 "x2+3x1+0=0"
对于第 12 个元素,它打印 "x2+3x10=0"
尽管期待3*a+1<0
返回FALSE
当a==0
.
最佳答案
我创建了一个 data.frame
,以便您可以检查 a = -1
的条件是否为 < 0。由于 -1 + 1 = 0,因此对于 a = -1
给出 x2+3x10=0
。
因此,您可以将代码条件更改为 < -2,就像我在 result2
中所做的那样。
a <- -5:5
library(dplyr)
data.frame(a) %>%
mutate(
condition = 3*a+1,
result1= paste0("x2+3x1",ifelse(condition< 0,"","+"),a+1,"=0"),
result2= paste0("x2+3x1",ifelse(condition< -2,"","+"),a+1,"=0")
)
a condition result1 result2
1 -5 -14 x2+3x1-4=0 x2+3x1-4=0
2 -4 -11 x2+3x1-3=0 x2+3x1-3=0
3 -3 -8 x2+3x1-2=0 x2+3x1-2=0
4 -2 -5 x2+3x1-1=0 x2+3x1-1=0
5 -1 -2 x2+3x10=0 x2+3x1+0=0
6 0 1 x2+3x1+1=0 x2+3x1+1=0
7 1 4 x2+3x1+2=0 x2+3x1+2=0
8 2 7 x2+3x1+3=0 x2+3x1+3=0
9 3 10 x2+3x1+4=0 x2+3x1+4=0
10 4 13 x2+3x1+5=0 x2+3x1+5=0
11 5 16 x2+3x1+6=0 x2+3x1+6=0
关于r - 为什么给出0时没有+号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74858667/