我想创建一个散点图,在某个x和y值之上标记了点,并且在这些值之下没有标签的点。
我在考虑像
这样的东西plot(data[,2]~data[,3], ylim=rev(range(data[,2])), xlim=c(-20,20), log="y", type="n")
text(data[,2]~data[,3], labels=ifelse(data[,2] < 0.05 && data[,3] > 1, data[,1], points(y,x)))
但它给了我这个错误:
Error in ans[!test & ok] <- rep(no, length.out = length(ans))[!test & :
replacement has length zero
In addition: Warning message:
In rep(no, length.out = length(ans)) :
'x' is NULL so the result will be NULL
我在SO上发现了一些类似的问题,但没有任何东西可以适应我的需求 - 至少我的知识有限。
(我是R的新手,所以请忍受我的问题。)
答案 0 :(得分:0)
有两个问题
text(data[,2]~data[,3], labels=ifelse(data[,2] < 0.05 && data[,3] > 1, data[,1], points(y,x)))
查看此答案: R - boolean operators && and || 要理解&amp;和和&amp;&amp; ,你的案例“&amp;”会更有意义。 第二个问题是
points(y,x)
当逻辑响应为“FALSE”时,将调用此部分代码;即if条件的FALSE分支; 积分我猜是一个本地函数,它接受参数x&amp; y;但是x和y还没有在ifelse的parent.frame(范围)中实例化。所以,当你修复“&amp;”;你会得到一个关于点(y,x)的错误。确保
时需要执行的功能data[,2] < 0.05 & data[,3] > 1
为false将返回一个值。