【发布时间】:2014-06-07 12:53:56
【问题描述】:
我在.GlobalEnv 中有一个包含结构相同变量名称的字符向量。我想从每个变量的相同因素中降低水平。
我该怎么做,例如扩展下面的代码,实际上更新全局环境中的变量?查看示例数据,这意味着在将subset 和assign 之后的W 和Q 不存在的因子z 降低到.GlobalEnv。
lapply(mget(var_list, .GlobalEnv), function(x) levels(x$z) <- droplevels(x$z))
我想我可以做一些类似于下面的例子来改变例如rownames 使用 lapply
list_of_dfs <- lapply(list_of_dfs, "rownames<-", NULL)
虚拟数据
z <- c("a",'a','b','a','c','d','b','d','d','b')
x <- c(10,2,33,41,5,64,17,11,22,1)
y <- c('W','W','W','W','W','Q','Q','Q','Q','Q')
df <- data.frame(cbind(z,x,y))
var_list <- c('W', 'Q')
# subsetting and assigning variables
for(i in var_list){
assign(i, subset(df, y %in% i), envir=.GlobalEnv)
}
【问题讨论】:
标签: r loops global-variables apply r-factor