您可以同时在R中分配两个变量吗?

pol*_*lka 0 r

我以基于圆的半径(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中使用相同的结构?

Gre*_*gor 5

不,您不能在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)