2011-12-27 9 views
3

以上で、私はデータフレームmを持っていると私はf_nameコラムは私が文字列の長さがn

m <- m[-grep("nchar(m$f_name)>3", m$f_name] 
と同様のものを使用することができると仮定3よりエントリー大きなを持っているすべての行を削除したいすべての行を削除します
+0

@Umesh Awasthi些細な編集が本当に必要なのか分かりません。 – joran

+2

あなたはその質問に言い直す必要があります。あなたのコードで判断すると、 "f_name列のエントリが3より大きいすべての行を削除したくありません" f_nameの文字列の長さが3より大きい行を削除したいとします。 – neilfws

+0

@joran:agree !!しかし、それが可読性を向上させるならば、そこには害はありません:) –

答えて

9

は少しあなたの質問を言い替えるするには、あなたがF_NAMEのエントリが3以下の長さを持つ行を保持したいです。それではどうすればいいのですか:

subset(m, nchar(as.character(f_name)) <= 3) 
+2

しかし、見逃してしまいます。 – hadley

+1

@ hadelyそれは私が今日デバッグしていたコードで私を得ました。卑劣な問題への警告のための+1。 –

+1

を削除するか、isTRUEに条件をラップしてNAを削除します。 – aL3xa

3

はこれを試してみてください:

m[!nchar(as.character(m$f_name)) > 3, ]