2017-02-03 17 views
1

У меня был большой набор данных, созданный и сделанный так на куски. Я создал 50 кадров данных (F1: F50), а затем я слил их вместе с:R - создание объектов null

for(i in 1:50) {x= get(paste0("F",i)) 
zF <- rbind.fill(zF,x)} 

Однако теперь я пытаюсь очистить другие объекты.

После того, как они NULL я использую

rm(list=names(which(sapply(globalenv(),is.null)))) 

Возможно, я мог бы изменить is.null() к чему-то, как шаблон, который описывает свои объекты, но я подумал, что было бы проще просто посмотреть и сделать каждый NULL поэтому я попытался несколько попыток:

> for(i in 1:56) {get(paste0("F",i)) 
    paste("F",i)=NULL} 
Error in paste("F", i) = NULL : 
    target of assignment expands to non-language object 

> for(i in 1:56){get(paste0("F",i))=NULL} 
    Error in get(paste0("F", i)) = NULL : 
     target of assignment expands to non-language object 

Так где верхний цикл работал, но это не удалось подразумевает мне, что в то время как get даст вам данные для репликации (в виде x), а затем использовать, он не позволяет мне изменять фактический объект.

Есть ли способ сделать это или это решение с помощью rm, я бы предпочел бывшую, поскольку она открывает будущие изменения в объектах, кроме просто избавления от них.

ответ

1
rm(list = ls(pattern = '^F')) 

Удалить все объекты, которые соответствуют шаблону (в этом случае все объекты, которые начинаются с «F»)

+0

Спасибо, есть способ использовать получить или аналогичную функцию в случае, если я хочу, чтобы это сделать сюда. В моем первом коде с использованием x было достаточно, но, например, я хотел бы изменить класс каждого объекта, Id должен создать загрузку манекенов, rm оригиналов, а затем переименовать макеты. – Olivia

+1

Вы можете создать список своих объектов с помощью 'ls (pattern = ..)', а затем применить нужную функцию с семейством 'apply' к объектам' get'ted: 'my_list <- ls (pattern = '^F '); sapply (my_list, function (x) {as.numeric (get (x))}) ' – GGamba