重新编码数据框变量时,分配没有按预期工作?
Assign is not working as expected when recoding data frame variables?
我一直遇到一个问题,我一直在尝试一次重新编码许多变量。看起来最简单的方法是使用 assign
并将变量放在 .GlobalEnv
中。我现在看到它甚至在函数之外都不起作用。
有谁知道为什么,
assign('dataframe$col1', 3 - dataframe$col1, env = .GlobalEnv)
好像对dataframe$col1
没有影响?
使用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)
我一直遇到一个问题,我一直在尝试一次重新编码许多变量。看起来最简单的方法是使用 assign
并将变量放在 .GlobalEnv
中。我现在看到它甚至在函数之外都不起作用。
有谁知道为什么,
assign('dataframe$col1', 3 - dataframe$col1, env = .GlobalEnv)
好像对dataframe$col1
没有影响?
使用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)