提问人:Marcus 提问时间:7/17/2015 更新时间:7/17/2015 访问量:33
重新编码数据框变量时,Assign 未按预期工作?
Assign is not working as expected when recoding data frame variables?
问:
我一直有一个问题,我一直在尝试一次重新编码许多变量。看似最简单的方法是使用变量并将其放在 中。我现在看到它甚至不能在函数之外工作。assign
.GlobalEnv
有谁知道为什么,
assign('dataframe$col1', 3 - dataframe$col1, env = .GlobalEnv)
似乎对没有影响?dataframe$col1
答:
1赞
akrun
7/17/2015
#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)
评论
0赞
Marcus
7/17/2015
哇,太感谢了!我之前尝试过这种变体,我从不同的答案中看到了这一点,但一直告诉我我没有有效的论据。这也很好地推广到我的反向编码变量函数。get
assign
0赞
akrun
7/17/2015
如果您要通过@Marcusget
string
1赞
Marcus
7/17/2015
你太快了,我被告知我必须等五分钟才能接受你的回答。
0赞
akrun
7/17/2015
@Marcus 谢谢,我忘记了等待时间:-)
下一个:structs 直接声明 C
评论
[
$