タグ付けされた質問 「dplyr」

group_by、summary、filter、selectなど、dplyrパッケージの関数に関連する質問には、このタグを使用します。

7
NAを値のセットで置き換える方法
次のデータフレームがあります。 library(dplyr) library(tibble) df <- tibble( source = c("a", "b", "c", "d", "e"), score = c(10, 5, NA, 3, NA ) ) df 次のようになります。 # A tibble: 5 x 2 source score <chr> <dbl> 1 a 10 . # current max value 2 b 5 3 c NA 4 d …
18 r  dplyr  tibble 

3
mutateの右側のrecodeでのtidyevalベースの非標準評価の使用
各列が多くの値をとることができる文字ベクトルであるティブルを考えてみましょう-「A」から「F」までとしましょう。 library(tidyverse) sample_df <- tibble(q1 = c("A", "B", "C"), q2 = c("B", "B", "A")) 引数として列名を取り、その列を再コード化して、回答「A」がNAになり、それ以外の場合はdfがそのまま返されるようにする関数を作成したいと思います。このように設計する理由は、特定の列を使用して一連の操作を実行するより広範なパイプラインに適合するためです。 これを行うには多くの方法があります。しかし、私は、慣用的なtidy_eval / tidyverseアプローチが何であるかを理解することに興味があります。まず、質問名はmutate動詞の左側にある必要があるため、!!and :=演算子を適切に使用します。しかし、それでは右側に何を置くべきでしょうか? fix_question <- function(df, question) { df %>% mutate(!!question := recode(... something goes here...)) } fix_question(sample_df, "q1") # should produce a tibble whose first column is (NA, "B", "C") 私の最初の考えはこれがうまくいくと思いました: df %>% …
13 r  dplyr  rlang  tidyeval  nse 

1
Rでセクションとサブセクションを持つ列で構成されるデータフレームをピボットする方法
以下のデータフレームがあります: structure( list(ID = c("P-1", " P-1", "P-1", "P-2", "P-3", "P-4", "P-5", "P-6", "P-7", "P-8"), Date = c("2020-03-16 12:11:33", "2020-03-16 13:16:04", "2020-03-16 06:13:55", "2020-03-16 10:03:43", "2020-03-16 12:37:09", "2020-03-16 06:40:24", "2020-03-16 09:46:45", "2020-03-16 12:07:44", "2020-03-16 14:09:51", "2020-03-16 09:19:23"), Status = c("SA", "SA", "SA", "RE", "RE", "RE", "RE", "XA", "XA", "XA"), Flag …

1
特定の行を条件にしながら複数の列を動的に変更する
この辺りに似たような質問がいくつかあることは知っていますが、私が抱えている正確な問題に対応しているようには見えません。 set.seed(4) df = data.frame( Key = c("A", "B", "A", "D", "A"), Val1 = rnorm(5), Val2 = runif(5), Val3 = 1:5 ) Key == "A"である行の値列の値をゼロ化したいと思います。列名はgrep: cols = grep("Val", names(df), value = TRUE) 通常、この場合に必要data.tableなことを達成するには、次のようにします。 library(data.table) df = as.data.table(df) df[Key == "A", (cols) := 0] そして、望ましい出力は次のようになります: Key Val1 Val2 Val3 1 A …
11 r  dplyr  data.table 

2
ユニコード記号とそのユニコード表現を区別するためのdplyrフィルター条件
私はそれがフォームであるかどうかに基づいてシンボル列をフィルタリングしようとしています \uxxxx これは、視覚的に簡単であること、いくつかのように見える$、¢、£、そして他の人が好き\u058f、\u060b、\u07fe。 しかし、私はstringi/ を使用してそれを理解するようには思えませんdplyr library(dplyr) library(stringi) df <- structure(list(Character = c("\\u0024", "\\u00A2", "\\u00A3", "\\u00A4", "\\u00A5", "\\u058F", "\\u060B", "\\u07FE", "\\u07FF", "\\u09F2", "\\u09F3", "\\u09FB", "\\u0AF1", "\\u0BF9", "\\u0E3F", "\\u17DB", "\\u20A0", "\\u20A1", "\\u20A2", "\\u20A3"), Symbol = c("$", "¢", "£", "¤", "¥", "\u058f", "\u060b", "\u07fe", "\u07ff", "৲", "৳", "\u09fb", "\u0af1", "\u0bf9", "฿", "៛", "₠", …
10 r  dplyr  stringr  stringi 

3
data.tableでできるdtplyrでできないこと
Rで、特にとの間dplyrでデータをラングリングするための学習努力を投資する必要がdtplyrありdata.tableますか? dplyrほとんど使用しますが、データが大きすぎる場合はを使用しますがdata.table、これはまれなケースです。したがって、dtplyrv1.0がのインターフェイスとしてdata.table公開されたので、一見すると、data.tableインターフェイスの使用について二度と心配する必要はないようです。 だから、ほとんどの便利な機能や側面何をしているdata.tableことはできません使用して行われdtplyrた瞬間に、それはそうで行われることはありませんかdtplyr? その顔、上dplyrの利点とdata.tableなり、それはのように聞こえるdtplyr追い越すだろうdplyr。使用する理由はあるのでしょうdplyr一度dtplyr完全に成熟していますか? 注:私はdplyrvs については質問していませんdata.table(data.table vs dplyrの場合のように、他の人がうまくやることができるか、うまくいかないことがあるのでしょうか?) tはdtplyr、使用するツールとなります。
9 r  dplyr  data.table  dtplyr 

5
前のn行に基づいて条件付きで新しい列を作成する
次のようにデータフレームを設定しました。 df <- data.frame("id" = c(111,111,111,222,222,222,222,333,333,333,333), "Location" = c("A","B","A","A","C","B","A","B","A","A","A"), "Encounter" = c(1,2,3,1,2,3,4,1,2,3,4)) id Location Encounter 1 111 A 1 2 111 B 2 3 111 A 3 4 222 A 1 5 222 C 2 6 222 B 3 7 222 A 4 8 333 B 1 9 333 A …

4
時間を重複させて行を削除する効率的な方法
開始時刻と終了時刻を表す列を持つ長いデータセットがあり、行が重複していて優先順位が高い場合(たとえば、1が最高の優先順位)、行を削除したいと思います。私のサンプルデータは library(tidyverse) library(lubridate) times_df <- tibble(start = as_datetime(c("2019-10-05 14:05:25", "2019-10-05 17:30:20", "2019-10-05 17:37:00", "2019-10-06 04:43:55", "2019-10-06 04:53:45")), stop = as_datetime(c("2019-10-05 14:19:20", "2019-10-05 17:45:15", "2019-10-05 17:50:45", "2019-10-06 04:59:00", "2019-10-06 05:07:10")), priority = c(5,3,4,3,4)) 私が思いついた方法は、より高い優先度の値との重複を見つけ、それを使用しanti_joinてそれらを元のデータフレームから削除することにより、問題を後方から攻撃します。同じ時間点で3つの期間が重複している場合、このコードは機能しません。これを行うには、より効率的で機能的な方法があるはずです。 dropOverlaps <- function(df) { drops <- df %>% filter(stop > lead(start) | lag(stop) > start) %>% mutate(group …
9 r  dplyr 

5
Rで互いに最も近い2つの3つの値から選択する方法は?
のID最も近い2つの値をそれぞれ選択しますCq。私はそれを理解したと思ったが、それは行の位置に依存する... これが私のデータセットの形式の例です: df <- data.frame(ID = c("A","A","A","B","B","B","C","C","C"), Cq = c(34.32,34.40,34.31,31.49,31.40,31.49,31.22,31.31,31.08)) ID Cq 1 A 34.32 2 A 34.40 3 A 34.31 4 B 31.49 5 B 31.40 6 B 31.49 7 C 31.22 8 C 31.31 9 C 31.08 そして私が試したもの df4 <-df %>% group_by(ID) %>% arrange(Cq) %>% mutate(diffvals= Cq - …
8 r  dplyr 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.