我可以批量分配变量吗?

时间:2012-11-12 18:29:53

标签: r

例如,我有2个变量ab(实际上我实际上超过2个),我可以像c(a,b)<-c(0,0)一样为它们分配值,就像Python中的元组?谢谢。

2 个答案:

答案 0 :(得分:2)

没有内置方法可以做到这一点 - 您所寻找的内容与lists中的vectorsR非常相似 - 而不是回调abc,您回复了a[1]a[2]a[3]。如果能够通过单独的名称回调这些值并且能够从同一行分配它们很重要,那么您可以创建一个简单的函数:

Assign <- function(Names, Values) {
             for(i in 1:length(Names)){
                  assign(Names[i], Values[i], envir=.GlobalEnv)
             }}

>A <- c("a", "b", "c", "d")
>B <- c(0,4,2,3)
>Assign(A,B)
>c
#[1] 2

我无法找到让apply家族解决这个问题的方法而不会让它过于复杂 - 也许有人可以帮助我。

答案 1 :(得分:1)

您可以按照in this question的说明使用%=% (您必须复制并粘贴四个功能)

# Example Call;  Note the use of g()  AND  `%=%`
#     Right-hand side can be a list or vector
g(a, b, c)  %=%  list("hello", 123, list("apples, oranges"))

# Results: 
> a
[1] "hello"
> b
[1] 123
> c
[[1]]
[1] "apples, oranges"