web-dev-qa-db-ja.com

dplyr :: filterを使用して、出力を最初の500行だけに制限するにはどうすればよいですか?

dplyrは素晴らしく高速なライブラリです。

%>%演算子を使用すると、強力な操作が可能になります。

最初のステップでは、出力を最大500行に制限する必要があります(表示用)。

どうやってやるの?

par<-filter(pc,Child_Concept_GID==as.character(mcode)) %>% select(Parent_Concept_GID)

必要なのは

filter(pc,CONDITION,rows=500)

最初のステップを別のステップ(%>%「ストリーム」の外)にすることなく、直接的な方法または適切な回避策はありますか?

11
userJT

これを行うにはいくつかの方法があります。データをパイプライニングしていると仮定します(%>%を使用)

  • top_n(tn)はグループ化されたデータを処理します。データがarrange()でソートされている場合、tn行は返されません。
  • head(500)は最初の500行を取ります(たとえば、arrange()の後に使用できます)
  • sample_n(size=500)を使用して、500個の任意の行を選択できます

SQLのLIMITに相当するRを探している場合は、head()を使用してください。

26
matthew.peters

ここで実際にslice()を探していると思います。

filter(pc, condition) %>% slice(1:500) 

これは結果をランク付けしません。位置によってスライスを引っ張るだけです。この場合、位置1から500です。

これがリレーショナルデータベースからのものである場合は、headの方が適しています。

14

フィルタの出力を制限するために、フィルタの後に関数を追加できます

top_n()

クレジットはコメンターのジョランに行きます

解決

par<-filter(pc,Child_Concept_GID==as.character(mcode)) %>% top_n(500) %>% select(Parent_Concept_GID)
4
userJT