在assign()r之后修改列值

时间:2015-03-03 15:22:16

标签: r

我想将多个文件读入多个data.frames:

files <- list.files("my directory)
for(i in seq_along(files))  
{
   name <- paste0("split_", i)

   assign(name, fread(paste0(path, files[i]), 
                      header = FALSE,
                      sep = "\t",
                      stringsAsFactors = FALSE)

   setnames(get(tname), colnames(get(tname)), clnames)
}

以上工作正常并创建data.frames split_1,split_2,...

我的问题是如何修改创建的data.frames中的列?为简单起见,我们假设我想用1填充一列。

get(name)$COL_NAME <- 1

给出以下错误:

could not find function "get<-"

怎么做?

感谢。

2 个答案:

答案 0 :(得分:0)

将其分配给临时变量,然后将临时变量重新分配给指定的data.frame,例如,

v = get(name)
v[,COL_NAME] = 1
assign(name, v)

答案 1 :(得分:0)

你可以尝试

assign(name, '[[<-'(get(name), 'COL_NAME', value=1))

for循环中