我有两个变量(即):
a <- 1
b <- 2
Run Code Online (Sandbox Code Playgroud)
我想换掉他们的价值观.是否有内置的R功能,能够执行该操作?或者是否有其他优雅的方式,而不使用第三个(临时)变量?
注意:如果可能,则适用于字符串或其他数据类型.
有一般解决方案或'技巧':
a <- 1
b <- 2
a <- a + b
b <- a - b
a <- a - b
Run Code Online (Sandbox Code Playgroud)
这是一个有用的链接,解释了很多:xor-trick
对于整数,您可以使用
a = a + b
b = a - b
a = a - b
Run Code Online (Sandbox Code Playgroud)
对于字符串,这可行
a <- "one"
b <- "two"
a <- paste(a,b, sep = "")
b <- substr(a,0,nchar(a) - nchar(b))
a <- substr(a,nchar(b) + 1, nchar(a))
> a
# two
> b
# one
Run Code Online (Sandbox Code Playgroud)
基础包中有太多功能的好处是:总有办法做某事,即使这是一个坏主意。
list2env(list(a = b, b = a), envir = .GlobalEnv)
Run Code Online (Sandbox Code Playgroud)
无论 和a是什么类,这都有效b。但我再说一遍:这是一个坏主意。