2016-05-27 6 views
-3

メモリからいくつかのdata.framesを削除したいと思います。これは、今lapplyでremove()を実行できない

remove(ttest,inherits=T) 

私が使用するすべてのデータのことを書きたくないとうまく動作しますので、私はlapply使用について考えた:テーブル名はテーブル名のあるリストだけで

lapply(tablenames,remove) 

それ:

tablenames 

[[1]] 
[1] ttest 
Levels: testsheet ttest ttest2 

[[2]] 
[1] testsheet 
Levels: testsheet ttest ttest2 

[[3]] 
[1] ttest2 
Levels: testsheet ttest ttest2 

私は常にエラーを取り戻す:

Error in FUN(X[[i]], ...) : ... muss Namen oder Zeichenketten enthalten

"は名前または文字列を含む必要があります"に変換されます。

次に私はそれを= Tパラメータを継承を与えるためにも、別の関数に削除機能をラップすることを試みた:

clean <- function(table) {rm(table, inherits=T)} 
> lapply(tablenames,clean) 
[[1]] 
NULL 

[[2]] 
NULL 

[[3]] 
NULL 

テーブルが残っています。私に何ができる?ありがとうございました。

+0

不明。なんでしょう?あなたはテーブルリーダーのいくつかのメンバーを削除したいですか?どちら? – user31264

+0

いいえ、rm(table)やremove(table)のように、テーブル全体をメモリから削除したいと思います。 – mariego

+0

rm(tablenames)をしてはいけないのはなぜですか? – user31264

答えて

3

あなたは複雑な何もする必要はありません。 tablenames

その後、

rm(list = tablenames, inherits = TRUE) 
を削除するオブジェクトの名前の文字ベクトルであるならば、私はあなたがやりたいと思うものを行います。

+0

パーフェクト、ありがとう。私はリストが関数のために許可された入力であることに気づいていませんでした。 – mariego

+0

@mariegoリストは許可された入力ではありません。文字ベクタは許可された入力です。 – bouncyball

+0

OK、list = tablenamesは私を混乱させました。 :) – mariego

1

代わりのlapplyを使用して、我々はunlistを使用する必要があります。

rm(list = unlist(tablenames)) 
関連する問題