r - 为什么给出0时没有+号?

标签 r arrays printing

我正在尝试计算水平曲线列表,如下所示:

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返回FALSEa==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/

相关文章:

python - 转义序列如何影响字符串的长度?

r - data.table 在合并中分配 `sapply`

arrays - Swift 乘法数组索引

c - 如何打印C语言函数的结果?

javascript - 检查 JavaScript 数组中的值

arrays - 如何在 groovy 中使用 JsonBuilder 创建数组

windows - 使用 Microsoft XPS Document Writer 以编程方式创建 XPS 文件

r - 将矩阵划分为 R 中的列表时出现奇怪的输出

r - 在 R 中将 DNA 序列转换为时间序列

r - 使用 group_rows 与 kableExtra 进行列对齐