在python中,'*'操作符可以在字符串列表中工作,如下所示:
#Python code
>>> a=['a','b','c']
>>> a*2
['a', 'b', 'c', 'a', 'b', 'c']
但在R中,它不起作用。
#R code
> a=c('a','b','c')
> a*2
Error in a * 2 : non-numeric argument to binary operator
虽然答案是:按如下方式使用rep函数
> rep(a,times=2)
[1] "a" "b" "c" "a" "b" "c"
但我想学习如何扩展像''这样的运算符。我想学习如何扩展''运算符?
2条答案
按热度按时间bvjxkvbb1#
我并不是真的建议你这么做,但是既然你问了,你可以把
*
重新定义为泛型,然后添加你定制的方法。在这种情况下,当第一个对象是字符时,您将使用
rep
,否则您将像往常一样进行正常的基数R乘法。请注意,使用此代码可以执行
a*2
,但不能执行2*a
。ozxc1zmp2#
您可以在R中定义自己的操作符,例如。
然而,请注意,这并不是一个好主意,因为
*
是为乘法目的而预定义的,即。22*2
不是44,而是22 22
。