我正在按照this教程在R。
中实现支持向量机我无法澄清情节命令
的工作原理plot(x,col=ifelse(y>0,1,2))
x的大小为300 length(x)
确认,但length(ifelse(y>0,1,2)
显示为150。
如果有300个x值但只有150 y值,情节如何工作?
当我尝试
时 plot(x,ifelse(y>0,1,2))
它显示预期的错误,即
Error in xy.coords(x, y, xlabel, ylabel, log) :
'x' and 'y' lengths differ
col=ifelse(y>0,1,2)
是什么让它起作用?
答案 0 :(得分:1)
一般来说,R知道回收,即在很多情况下R 回收向量,如果它们没有所需的长度,例如
1:4 + 1:2
向量1:2
被回收,因此有效地成为c(1,2,1,2)
适合其他向量的长度。现在,我们可以对矢量求和
c(1,2,3,4) + c(1,2,1,2)
在col
参数的示例中也是如此。向量col
被回收,因此它符合x
的长度。 但如您所见,并非所有参数值都会自动回收。对于x
中的y
和plot
参数,情况并非如此。这是有道理的,因为如果这两个矢量的长度不匹配,它可能是一个错误。