1

R を使用して学習しようとしているときに、苦境に遭遇したようです。次のようなデータセットがあります。

col1 / col2 / col3   

該当なし / 1 / 2

1 / 該当なし /2

私がする必要があるのは、すべての IS NOT NA を別の値に置き換えることです (以下を参照)

列 1 / 列 2 / 列 3

NA / データ / データ

データ / NA/ データ

私はウェブ上のあらゆる場所を見てきましたが、誰もがNA's を他の値に置き換えたいと思っているようです.一方、私は正反対のものが必要ですが、コマンドを見つけることができませんでした. <「IF」も調べましたが、値が eiterまたは=または特定の数値の場合に値を置き換える関数しか見つけることができませんでし>た。指定する何かが必要です...「IF が と異なる場合はNA、... に置き換えます。」

4

1 に答える 1

3

データ:

dat <- data.frame(col1 = c(NA, 1), col2 = c(1, NA), col3 = c(2, 2))

でない すべての値を選択するNAには、論理演算子!("not") を と共に使用しis.naます。

dat[!is.na(dat)] <- "Data"

  col1 col2 col3
1 <NA> Data Data
2 Data <NA> Data

同じことは、次のreplace関数でも実現できます。

replace(dat, !is.na(dat), "Data")

因子の値を置き換えたい場合は、別のアプローチが必要です。これは、次のコマンドで実現できます。

replace(data.frame(lapply(dat, as.character), stringsAsFactors = FALSE),
        !is.na(dat), "Data")
于 2012-11-15T10:29:33.900 に答える