我一直有一个问题,我一直试图重新编码许多变量。最简单的方法是使用assign
并将变量放在.GlobalEnv
中。我现在看到它甚至没有在功能之外工作。
有没有人知道为什么,
assign('dataframe$col1', 3 - dataframe$col1, env = .GlobalEnv)
似乎对dataframe$col1
无效?
答案 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)