特定の値が別の列で検出されるまで、1つの列の値を合計する

ラナ

しきい値以上の別の列の値が見つかるまで、ある列の一連の行を合計しようとしています。その合計をオブジェクトに出力し、そのプロセスを繰り返して、次の合計を同じオブジェクトに入れます。

私は主に統計のためにRを使用しましたが、コードを書く能力はかなり限られており、独学で学んでいます。現在、私は一連のデータセットを持っており、各データセットは個人を表しています。各データセット内には、対象となる2つの列と約17,000行があります。一方の列(x)から、もう一方の列(a)で0.17以上の値が検出されるまで、連続する行を合計しようとしています。この値が見つかったら、その合計を別のオブジェクトに出力する必要があります。次に、次の行から始めて、aで0.17以上の値が検出されるまで、xのすべての値を合計する必要があります。したがって、最終的には、データセット全体のこれらすべての合計を含むオブジェクトが作成されます。ループとif / elseを使用するいくつかの関数を試しましたが、適切な結果が得られません。これが最善のアプローチかどうかさえわかりませんが、

x <- c(1,2,3,4,5,6,7,8,7,6,5,4,3,2,1)
a <- c(0.05, .10, 0.1, 0.19, 0.12, 0.15, 0.20, 0.01, 0.08, 0.11, 0.18, 0.14, 0.17, 0.01, 0.02)

summing <- function(x) {
    s <- 0
    leng <- Inf
    n <- nrow(data2)
    for(x in 1:(n-1)){
        step2<- if(data2$a <= 0.17){
            s <- s + x[1]
        }   
    }
    return(results)
}
summing(data2$step)

summing <- function(x) {
    count <- 1
    begin <- 1
    results <- list()
    x <- rbind(x, c(1))
    n <- nrow(x)
    for(i in n){
        step <- sum(x[i,2], x[i + 1, 2])
        t <- x[i +1, 3]
        if(abs(x[i + 1, 3]) <= 0.17){
            begin <- i + step 
        }
        if(abs(x[i + 1, 3]) > 0.17){
            results[[count]] <- begin:1
            count <- count + 1
        }
    }
    return(results)
}

このサンプルデータでは、最初の4つの値を合計するオブジェクト(10)、次に5〜7番目(18)、8〜11番目(26)、12〜13番目(7)、14〜15番目(3)が必要です。 。

マルクス

使用できます tapply

INDEX <- cumsum(a >= 0.17) - (a >= 0.17)
out <- tapply(X = x, INDEX = INDEX, FUN = sum)
out
# 0  1  2  3  4 
#10 18 26  7  3

INDEXによって与えられる場所

INDEX
# [1] 0 0 0 0 1 1 1 2 2 2 2 3 3 4 4

コメントで@dbが指摘しているように、そのグループ化ベクトルを作成する別のオプションは次のとおりです。

INDEX = cumsum(c(FALSE, head(a, -1)) >= 0.17)

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

特定の方法で1つの列の値を合計する

分類Dev

SQL Access、の別の列のすべての値が指定された範囲内にある場合にのみ、1つの列の値を合計します

分類Dev

別の列で発生するたびに1つの列の値を合計

分類Dev

SQL-別の列の特定の値に達するまでの合計値

分類Dev

値でgroupByし、1つの列を合計し、別の列で等しい値を維持する方法は?

分類Dev

R:別の列の値でグループ化された列の値の割合を計算する

分類Dev

列の合計を別の列の値で制限する

分類Dev

別の列の特定の値に関連付けられている1つの列の値を検索する

分類Dev

別の列の値が特定の文字列で終わる場合は、列の値を変更します

分類Dev

group byを使用して、SQLで列の特定の値を持つ列の合計を検索する

分類Dev

Spark-2つの異なる列でそれぞれの個別の値の合計オカレンスを検索します

分類Dev

キーが1つの列で、置換される値が別の列であるデータフレームの値を再マップします

分類Dev

パンダの別の列のフロア値に基づいて、1つの列の値を合計するにはどうすればよいですか?

分類Dev

別の列の特定の値が外れ値である場合、Rに1の新しい列を作成するにはどうすればよいですか?

分類Dev

別の列に同じ値を含む行の1つの列の合計を検索する

分類Dev

別の列のキー値で列を合計する

分類Dev

2つの別々の望ましい列値でソートされたパンダのピボットテーブルの平均と合計を計算する

分類Dev

特定のユーザー内の連続する行を調べて、dplyrで別の列の値がいつ変更されるかを特定します

分類Dev

SQL Server:別の列で条件が満たされるまで、列の各グループ値を合計(または差)します

分類Dev

1つの列に数値が存在する場合は、その数値に対応する別の列の値を検索します

分類Dev

1つの列に数値が存在する場合は、その数値に対応する別の列の値を検索します

分類Dev

1つの列が最大で、別の列が最小である列の値を取得します

分類Dev

別の列が特定の条件を満たさない場合は、1つの列の値を選択します

分類Dev

複数の行の1つの列で同じ値を持ち、別の列の値が異なる行を検索します

分類Dev

値が1つのテーブルの別の列からのものである追加の列を持つ特定の行を選択します

分類Dev

1つの列で値を検索し、一致する場合は別の列の値を追加しますGoogle Script Google Sheets

分類Dev

ソートされていない配列で、合計が値になる3つの要素を検索します

分類Dev

1つの列での出現に基づいて値を一致させて合計し、隣接するそれぞれの列の値を加算します。

分類Dev

文字列が入力されるまでのJavaの数値の合計

Related 関連記事

  1. 1

    特定の方法で1つの列の値を合計する

  2. 2

    SQL Access、の別の列のすべての値が指定された範囲内にある場合にのみ、1つの列の値を合計します

  3. 3

    別の列で発生するたびに1つの列の値を合計

  4. 4

    SQL-別の列の特定の値に達するまでの合計値

  5. 5

    値でgroupByし、1つの列を合計し、別の列で等しい値を維持する方法は?

  6. 6

    R:別の列の値でグループ化された列の値の割合を計算する

  7. 7

    列の合計を別の列の値で制限する

  8. 8

    別の列の特定の値に関連付けられている1つの列の値を検索する

  9. 9

    別の列の値が特定の文字列で終わる場合は、列の値を変更します

  10. 10

    group byを使用して、SQLで列の特定の値を持つ列の合計を検索する

  11. 11

    Spark-2つの異なる列でそれぞれの個別の値の合計オカレンスを検索します

  12. 12

    キーが1つの列で、置換される値が別の列であるデータフレームの値を再マップします

  13. 13

    パンダの別の列のフロア値に基づいて、1つの列の値を合計するにはどうすればよいですか?

  14. 14

    別の列の特定の値が外れ値である場合、Rに1の新しい列を作成するにはどうすればよいですか?

  15. 15

    別の列に同じ値を含む行の1つの列の合計を検索する

  16. 16

    別の列のキー値で列を合計する

  17. 17

    2つの別々の望ましい列値でソートされたパンダのピボットテーブルの平均と合計を計算する

  18. 18

    特定のユーザー内の連続する行を調べて、dplyrで別の列の値がいつ変更されるかを特定します

  19. 19

    SQL Server:別の列で条件が満たされるまで、列の各グループ値を合計(または差)します

  20. 20

    1つの列に数値が存在する場合は、その数値に対応する別の列の値を検索します

  21. 21

    1つの列に数値が存在する場合は、その数値に対応する別の列の値を検索します

  22. 22

    1つの列が最大で、別の列が最小である列の値を取得します

  23. 23

    別の列が特定の条件を満たさない場合は、1つの列の値を選択します

  24. 24

    複数の行の1つの列で同じ値を持ち、別の列の値が異なる行を検索します

  25. 25

    値が1つのテーブルの別の列からのものである追加の列を持つ特定の行を選択します

  26. 26

    1つの列で値を検索し、一致する場合は別の列の値を追加しますGoogle Script Google Sheets

  27. 27

    ソートされていない配列で、合計が値になる3つの要素を検索します

  28. 28

    1つの列での出現に基づいて値を一致させて合計し、隣接するそれぞれの列の値を加算します。

  29. 29

    文字列が入力されるまでのJavaの数値の合計

ホットタグ

アーカイブ