Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在R中就地赋值而不写入变量名两次?_Python_R - Fatal编程技术网

Python 在R中就地赋值而不写入变量名两次?

Python 在R中就地赋值而不写入变量名两次?,python,r,Python,R,我通常会尽量避免代码重复,即使是在单行中。然而,我发现自己经常在R中写这样的句子: # R code my_long_vector_var_name <- append(my_long_vector_var_name, new_var) my_long_int_name <- my_long_int_name + 1 对于第二个问题,表明在R中确实没有可比的“短”方式。然而,这个问题已经超过6年了。在R中仍然没有更好的方法来实现这一点吗?magrittr有一个%%操作符,用于管道和

我通常会尽量避免代码重复,即使是在单行中。然而,我发现自己经常在R中写这样的句子:

# R code
my_long_vector_var_name <- append(my_long_vector_var_name, new_var)
my_long_int_name <- my_long_int_name + 1

对于第二个问题,表明在R中确实没有可比的“短”方式。然而,这个问题已经超过6年了。在R中仍然没有更好的方法来实现这一点吗?

magrittr
有一个
%%
操作符,用于管道和更新对象

library('magrittr')

v <- c(1, 2)

v %<>% append(3)
v
#> [1] 1 2 3

v %<>% add(1)
v
#> [1] 2 3 4
library('magrittr')
v[1]1 2 3
v%%添加(1)
v
#> [1] 2 3 4

在某种程度上,对于第一个问题,您可以使用dplyr包中的%>%运算符

library(dplyr)
my_long_vector<-rep(c("A","B","C"),10)%>%c("NEW VALUE")
库(dplyr)
我的长向量%c(“新值”)

我认为没有捷径,没有。一般来说,R对象是不可变的,在修改时会被复制,必须通过指定副本来显式覆盖原始变量。如果你经常增加向量,那你就错了。@Roland:我这样做主要是为了数据清理:“如果表包含某个元素,将其添加到处理向量…”“如果我使用实时数据,将此列添加到因子列表…”。我实际上不会增加任何数据帧/数据向量;-)当
dplyr
使用管道时,它来自
magrittr
包,该包具有更合适的运算符(参见Paul的答案)虽然我更喜欢Python点表示法(v.append(3)),但这似乎正是我在R中寻找的。
library(dplyr)
my_long_vector<-rep(c("A","B","C"),10)%>%c("NEW VALUE")