2015-03-03 4 views
0

Я хочу прочитать несколько файлов в нескольких 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? Для простоты предположим, что я хочу заполнить столбец с 1s.

get(name)$COL_NAME <- 1 

дает следующее сообщение об ошибке:

could not find function "get<-" 

Как это может быть сделано?

Спасибо.

+0

мая be 'assign (name, '[[<-' (get (name), 'COL_NAME', value = 1))' в цикле. Не тестировался без воспроизводимого примера. – akrun

+0

Вы пробовали 'assign (get (paste0 (name," $ COL_NAME ")), 1)'? – JasonAizkalns

+0

@akrun ваше решение сработало! Если вы опубликуете его в качестве ответа, я дам вам очки ... Спасибо! – Carlos

ответ

0

Вы можете попробовать

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

внутри цикла for

0

Назначают его к временной переменной, а затем передать временную переменную в имени data.frame, например,

v = get(name) 
v[,COL_NAME] = 1 
assign(name, v) 
Смежные вопросы