2017-03-25 17 views
0

私はこのような文字列とNASが移入データフレームの列、持っている:

df <- data.frame(col=as.character(c(NA,'', 'text', '', NA,'text'))) 

この場合、 'とNAはどちらもNAを表し、標準化しようとしているので、両方ともNAであるか、両方とも' 'です。私はこのコードを試してみました:

df$col <- replace_na(df$col, '') 

そして、このコード:

df$col <- replace_na(df$col, col = c('')) 

しかし、両方のアプローチは、次の出力の結果:

Error in UseMethod("replace_na") : 
    no applicable method for 'replace_na' applied to an object of class "character" 

私はこれが一般的な操作で知っていると私は確信しています解決策は簡単です。 NAsを文字列で置き換える構文は何ですか? (または、 '' とNA値を標準化する私の問題に対する最善の解決策は何ですか?)

+0

ルックhttp://stackoverflow.com/questions/24172111/change-the-blank-cells-to-na – tatxif

+0

右構文: 'DF < - replace_na(DF、リスト(COL = "")) '。私はむしろ逆のことをしたいと思います。すなわち、空の文字列を 'NA'sで' df $ col [df $ col == ""] < - NA'(ただし文脈によって異なります)のように置き換えてください。 – Scarabee

+0

ありがとうございます。最初はブランクをNAsに置き換えたかったので、私は両方の質問に答えました。 –

答えて

0

はこれを試してみてください:tidyr::replace_na()

df$col[is.na(df$col)] <- '' 
2

引数は

function (data, replace = list(), ...) 

完全なデータです最初の引数(data)に入ると、2番目の引数(replace)のリストに名前と値のペアを追加します。

tidyr::replace_na(df, list(col = "")) 
# col 
# 1  
# 2  
# 3 text 
# 4  
# 5  
# 6 text 
+0

この説明は完璧です、ありがとうございます。ベースRからの::構文ですか?私はまだそれに精通していない。 –

+0

@ JamesMeservy - '::'は、パッケージをロードせずに名前空間 'tidyr'から関数' replace_na'を取得するために使用される演算子です。私は 'replace_na()'を使いたいと思っていました。これはあなたが質問で使用したもので、あなたは[tag:tidyr]タグを使用したからです。 –

関連する問題