重新编码数据帧变量时,分配无法按预期工作?

时间:2015-07-17 08:04:09

标签: r global-variables variable-assignment assign assignment-operator

我一直有一个问题,我一直试图重新编码许多变量。最简单的方法是使用assign并将变量放在.GlobalEnv中。我现在看到它甚至没有在功能之外工作。

有没有人知道为什么,

assign('dataframe$col1', 3 - dataframe$col1, env = .GlobalEnv)

似乎对dataframe$col1无效?

1 个答案:

答案 0 :(得分:1)

使用assign,这可以通过复杂的方式完成

 assign('dataframe', `[[<-`(dataframe, 'col',
              value = 3- dataframe$col), envir=.GlobalEnv)

 dataframe$col
 #[1]  2  1  0 -1 -2

不那么复杂和安全

 dataframe$col <- 3-dataframe$col

或者如果您使用data.table

 library(data.table)
 setDT(dataframe)[, col:= 3- col] 

并且dplyr/magrittr选项是

 library(dplyr)
 library(magrittr)
 dataframe %<>%
         mutate(col = 3 - col)

数据

 dataframe <- data.frame(col= 1:5)