私は以前に答えられた質問の助けを借りていくつかのコードを書いた。この出力ましたRの同じ関数内に複数のフィルタを作成するには?
getT <- function(df, ID, Number){
df %>%
group_by(ID, Number) %>%
mutate(Distance = finish - begin) %>%
select(-begin,-finish,-symbols) %>%
nest() %>%
mutate(data = map(data, ~ filter(.x, Distance == max(Distance)))) %>%
unnest()
}
getallT <- as.data.frame(getT(df))
getTID <- function(df, ID) {
subset(x = getallT, subset = (ID))
}
:
ID Number Time Distance
33 1 2.00 870
33 2 1.98 859
33 3 0.82 305
33 4 2.02 651
33 5 2.53 502
私はTime
ことによってそれをフィルタリングしたかったので、私は(下のポストに感謝)このコードを使用:
getHLN <- function(df, ID) {
getallT %>% filter (ID ==id & !between(Time, 1.50, 2.10))
}
当初、私はこのコードを持っていました
これは今この出力を与える:
ID Number Time Distance
1 33 3 0.82 305
2 33 4 2.02 651
3 33 5 2.53 502
しかし今私は問題を抱えているので、いずれかの方法が不思議に残っています。 A.別のTime
フィルタを使用して別の機能を作成できるように、番号4 & 5をフィルタします。前の2つの機能を1つに統合する別の異なる機能を後で作成します。 または B.同じ機能内で、別の番号& 5のTime
フィルタを作成します。
filter (getallT, Number >= 3) %>%
を使用してAしましたが動作しません。可能であればBと一緒に行きたいと思う。 ID番号4〜5の場合は、同じ機能内でフィルタ(!間(時間1.5,2.3))を入力してください。 ID番号が1-3の場合:filter(!between(Time、1,2)) 私は過去の日にいくつか試してみましたが、エラーメッセージが表示され続けています。Error in filter_impl(.data, quo) : Evaluation error: operations are possible only for numeric, logical or complex types.
私はここにあるものを試してきましたが、ここでhttp://genomicsclass.github.io/book/pages/dplyr_tutorial.html
は、すべてのヘルプははるかに高く評価されるだろう
df <- data.frame(ID=rep(33,5),
Number=1:5,
Time=c(2.00,1.98,0.82,2.02,2.53),
Distance=c(870,859,305,651,502))
例のデータセットです。
あなたはSO再現可能なデータセットを含むの質問をよう習慣に取得してください小さな再現性の例 – akrun
を提供することができます。 https:// stackoverflow。com/questions/5963269/how-to-make-a-great-r-reproducible-example – cmaher
私はそれを追加することを忘れるという悪い習慣があります!うわー、思い出してくれてありがとう! –