x <- -3:3
x[x=2]/x[x==2] = -1
为什么分子x[x=2]
等于-2
?
有人可以在逻辑索引中解释=
和==
之间的区别吗?
答案 0 :(得分:3)
=
在这里进行分配,而不是进行比较。进行分配时,默认情况下会返回右侧值。观察
print(x=2)
# [1] 2
print(x=100)
# [1] 100
print(x<-2)
# [1] 2
因此与
相同x[2]/x[x==2]
和
x[2]
# [1] -2
所以-2/2是-1。
通常应避免使用=
,除非将参数命名为传递给函数的名称。使用<-
进行分配,使用==
进行比较。这样,当您在=
中看到[]
时,它会跳为“错误”