-1

大きなデータ フレームがあり、その一部は次のようになります。

   id carbon nitrogen sulfer
1   1     NA       NA     NA
2   1     NA       NA     NA
3   1      5        6     78
4   2     NA       NA     NA
5   2     NA       NA     NA
6   2      8        8     67
7   3     NA       NA     NA
8   3     NA       NA     NA
9   3     NA       NA     NA
10  3      7        9     55

NAID に共通の値を 1 つ指定して、列 (炭素の例) に値を入力する方法はありますか。たとえばid == 1、列の炭素の値が 5 であるためNA、5 に置き換える必要があるとします。このように 200 近くの列を埋める必要があります。

これを自動化するための助けは大歓迎です。

4

2 に答える 2

2

@flodel のコメントで指摘された問題を明確にしていません。とにかく、サンプルデータのパターンを考えると、つまり、各 id 内の最後の値を除いて、炭素窒素硫黄のすべての値が欠落している場合、これを試すことができます:

library(zoo)
na.locf(df, na.rm = FALSE, fromLast = TRUE)

#    id carbon nitrogen sulfer
# 1   1      5        6     78
# 2   1      5        6     78
# 3   1      5        6     78
# 4   2      8        8     67
# 5   2      8        8     67
# 6   2      8        8     67
# 7   3      7        9     55
# 8   3      7        9     55
# 9   3      7        9     55
# 10  3      7        9     55
于 2013-09-24T10:18:15.997 に答える
0

これを試してみてください。必要なものであることを願っています。更新しない場合は、結果を更新します。ちなみに、これはすでに数回尋ねられました。

myFunc <- function(value) {
  if (value[1] == 1) {
    value[2] = 5;
    value[3] = 5;
    value[4] = 5 
  }
  # here you put you're if's
}

apply(data, 1, myFunc)
于 2013-09-24T09:31:41.780 に答える