我以基于圆的半径(r)和圆弧的角度(θ)计算圆周围的弧长和圆周围的弧下面积为例。面积和长度均基于r和theta,您可以在python中同时计算它们。
在python中,我可以同时分配两个值。
from math import pi
def circle_set(r, theta):
return theta * r, .5*theta*r*r
arc_len, arc_area = circle_set(1, .5*pi)
Run Code Online (Sandbox Code Playgroud)
在R中实现相同的结构可以使我做到这一点。
circle_set <- function(r, theta){
return(theta * r, .5 * theta * r *r)
}
arc_len, arc_area <- circle_set(1, .5*3.14)
Run Code Online (Sandbox Code Playgroud)
但是返回此错误。
arc_len,arc_area <-circle_set(1,.5 * 3.14)
错误:“ arc_len”中出现意外的“,”
有没有办法在R中使用相同的结构?
不,您不能在R中做到这一点(至少不能在base或我知道的任何软件包中)。
您可能会最接近将对象分配给列表的不同元素。如果确实需要,则list2env可以将列表元素放在一个环境(例如,全局环境)中,或者用于attach使列表元素可访问,但是我认为您不会从这些方法中获益。
如果要让一个函数返回多个值,只需将它们放在列表中即可。另请参见r-函数返回多个值。
您可以为多个变量分配以下相同的值。即使在这里,我认为代码也不寻常且不太清晰,我认为这超过了简短的好处。(尽管我想这很清楚,所有变量都是相同的值……也许在正确的上下文中是有道理的。)
x <- y <- z <- 1
# the above is equivalent to
x <- 1
y <- 1
z <- 1
Run Code Online (Sandbox Code Playgroud)