別の列Rの条件に従って新しい列を作成します

Milo_R

日付カレンダーに従って新しい列「テスト」を作成したいと思います。期間= nの場合、日付のn-1日前に対応するtemp test = tempに同じ値を設定します

  Ozone Solar.R Wind Temp Month Day duration Year      Dates  MaxWind MaxDates
 41     190  7.4   67     5   1        1 1900 1900-05-01     7.4  1900-05-01  
 36     118  8.0   72     5   2       NA 1900 1900-05-02      NA          NA
 12     149 12.6   74     5   3        0 1900 1900-05-03      NA          NA
 18     313 11.5   62     5   4        2 1900 1900-05-04     14.3 1900-05-05
 NA      NA 14.3   56     5   5        0 1900 1900-05-05      NA          NA
 28      NA 14.9   66     5   6        0 1900 1900-05-06      NA          NA 
 23     299  8.6   65     5   7        3 1900 1900-05-07     20.1 1900-05-09
 19      99 13.8   59     5   8        0 1900 1900-05-08      NA          NA
  8      19 20.1   61     5   9       NA 1900 1900-05-09      NA          NA   

サンプルデータ -

structure(list(ozone = c(41, 36, 12, 18, NA, 28, 23, 19, 8), 
    Solar.R = c(190, 118, 149, 313, NA, NA, 299, 99, 19), Wind = c(7.4, 
    8, 12.6, 11.5, 14.3, 14.9, 8.6, 13.8, 20.1), Temp = c(67, 
    72, 74, 62, 56, 66, 65, 59, 61), Month = c(5, 5, 5, 5, 5, 
    5, 5, 5, 5), Day = 1:9, duration = c(1, NA, 0, 2, 0, 0, 3, 
    0, NA), Year = c(1900, 1900, 1900, 1900, 1900, 1900, 1900, 
    1900, 1900), Dates = structure(1:9, .Label = c("1900-05-01", 
    "1900-05-02", "1900-05-03", "1900-05-04", "1900-05-05", "1900-05-06", 
    "1900-05-07", "1900-05-08", "1900-05-09"), class = "factor"), 
    MaxWind = c(7.4, NA, NA, 14.3, NA, NA, 20.1, NA, NA), MaxDates = c(1894, 
    NA, NA, 1890, NA, NA, 1886, NA, NA)), class = "data.frame", row.names = c(NA, 
-9L))
ルイ・バラダス

質問を正しく理解していれば、次のコードで必要な処理を実行できます。

colTest <- function(DF, n, col = "test"){
    if(is.null(DF[[col]])) DF[[col]] <- NA
    i <- which(DF[["duration"]] == n)
    j <- which(DF[["Dates"]] %in% (DF[["Dates"]][i] - (n - 1)))
    DF[[col]][j] <- DF[["Temp"]][i]
    DF
}

colTest(df1, 0)
colTest(df1, 1)
colTest(df1, 2)
colTest(df1, 3)

でも機能することに注意してくださいn = 0

データ。

df1 <- read.table(text = "
  Ozone Solar.R Wind Temp Month Day duration Year      Dates  MaxWind MaxDates
 41     190  7.4   67     5   1        1 1900 1900-05-01     7.4  1900-05-01  
 36     118  8.0   72     5   2       NA 1900 1900-05-02      NA          NA
 12     149 12.6   74     5   3        0 1900 1900-05-03      NA          NA
 18     313 11.5   62     5   4        2 1900 1900-05-04     14.3 1900-05-05
 NA      NA 14.3   56     5   5        0 1900 1900-05-05      NA          NA
 28      NA 14.9   66     5   6        0 1900 1900-05-06      NA          NA 
 23     299  8.6   65     5   7        3 1900 1900-05-07     20.1 1900-05-09
 19      99 13.8   59     5   8        0 1900 1900-05-08      NA          NA
  8      19 20.1   61     5   9       NA 1900 1900-05-09      NA          NA
", header = TRUE)

df1$Dates <- as.Date(df1$Dates)
df1$MaxDates <- as.Date(df1$MaxDates)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Rの他の列の位置に従って新しい列を作成する

分類Dev

R:同じ列の条件に従って列の重複を識別します

分類Dev

パンダでは、条件に従って、別の部分から新しい列を作成する方法は?

分類Dev

別の列の条件に基づいて新しい列を作成します

分類Dev

Rの条件に従って新しい変数を要約して作成する

分類Dev

別の既存の列の条件を使用して新しい列を作成します

分類Dev

グループごとの別の列に従って、最も近い値の新しい列を作成します

分類Dev

パンダの行の値に従って新しい列を作成する

分類Dev

別の配列に従ってnumpy配列を整列します

分類Dev

別の列のif条件を使用してJMPに新しい列を作成する

分類Dev

別の列の外部キーに従って、新しく追加された列を更新します

分類Dev

別の列Rの条件に基づいて関数を作成します

分類Dev

Rの他の列の条件に基づいて新しい列を作成する

分類Dev

他の2つの列の条件に基づいて、Rに新しい列を作成します

分類Dev

rの別の列の観測値の一部に基づいて新しい列を作成します

分類Dev

別の列の内容に基づいてRに新しい列を作成します[特定のケース]

分類Dev

複数の列に条件を設定して、新しい列を作成します

分類Dev

Pythonの別の配列のインデックスに従って配列を作成します

分類Dev

R別の列の要素に基づいて新しい列を作成する

分類Dev

vsfgird の 1 つの列を別の列に従って入力します。

分類Dev

別のデータフレームの日付条件に基づいて新しい列を作成します

分類Dev

Pysparkが他の列の値に従って新しい列を追加する

分類Dev

LaravelEloquent-別の列に従って非反復列の数を取得します

分類Dev

パンダで、別の列の平均値に従ってランク付けされた新しい列を作成する方法

分類Dev

別の行の値を使用して、DataFrameに新しい列を作成します

分類Dev

Rの別の行の条件に基づいて新しい列を変更します

分類Dev

r の ID に従って、ある列から別の列の値を検索します。

分類Dev

別の列の条件に基づいてパンダ列を作成します

分類Dev

配列内の値に従ってNumPy配列を分割します(条件)

Related 関連記事

  1. 1

    Rの他の列の位置に従って新しい列を作成する

  2. 2

    R:同じ列の条件に従って列の重複を識別します

  3. 3

    パンダでは、条件に従って、別の部分から新しい列を作成する方法は?

  4. 4

    別の列の条件に基づいて新しい列を作成します

  5. 5

    Rの条件に従って新しい変数を要約して作成する

  6. 6

    別の既存の列の条件を使用して新しい列を作成します

  7. 7

    グループごとの別の列に従って、最も近い値の新しい列を作成します

  8. 8

    パンダの行の値に従って新しい列を作成する

  9. 9

    別の配列に従ってnumpy配列を整列します

  10. 10

    別の列のif条件を使用してJMPに新しい列を作成する

  11. 11

    別の列の外部キーに従って、新しく追加された列を更新します

  12. 12

    別の列Rの条件に基づいて関数を作成します

  13. 13

    Rの他の列の条件に基づいて新しい列を作成する

  14. 14

    他の2つの列の条件に基づいて、Rに新しい列を作成します

  15. 15

    rの別の列の観測値の一部に基づいて新しい列を作成します

  16. 16

    別の列の内容に基づいてRに新しい列を作成します[特定のケース]

  17. 17

    複数の列に条件を設定して、新しい列を作成します

  18. 18

    Pythonの別の配列のインデックスに従って配列を作成します

  19. 19

    R別の列の要素に基づいて新しい列を作成する

  20. 20

    vsfgird の 1 つの列を別の列に従って入力します。

  21. 21

    別のデータフレームの日付条件に基づいて新しい列を作成します

  22. 22

    Pysparkが他の列の値に従って新しい列を追加する

  23. 23

    LaravelEloquent-別の列に従って非反復列の数を取得します

  24. 24

    パンダで、別の列の平均値に従ってランク付けされた新しい列を作成する方法

  25. 25

    別の行の値を使用して、DataFrameに新しい列を作成します

  26. 26

    Rの別の行の条件に基づいて新しい列を変更します

  27. 27

    r の ID に従って、ある列から別の列の値を検索します。

  28. 28

    別の列の条件に基づいてパンダ列を作成します

  29. 29

    配列内の値に従ってNumPy配列を分割します(条件)

ホットタグ

アーカイブ