2017-05-29 17 views
1

複数のデータセットの頻度テーブルを取得する方法msleep,msleep_sub共通の列の場合vore?私はapplyファミリ関数にカラム名を渡すことでこれが達成できるかどうか疑問に思っていました。一般的な列の複数の類似したデータセットの頻度テーブル

library(msleep) 
head(msleep) 
msleep_sub <- msleep %>% group_by(genus) %>% filter(n() ==1) 
table(msleep$vore) 
# carni herbi insecti omni 
#  14  27  5  20 
table(msleep_sub$vore) 
# carni herbi insecti omni 
#  19  32  5  20 

より正確には、上記の2つの出力を1つのコマンドで取得する方法です。

答えて

1

我々はlist内のオブジェクトを保持し、lapply

lapply(list(msleep, msleep_sub), function(x) table(x$vore)) 

それとも別のオプションlist

内のオブジェクトを保持した後 tidyverseあると listをループすることにより、必要な列の tableを取得
library(tidyverse) 
list(msleep, msleep_sub) %>% 
      map(~table(.$vore)) 

私たちが名付けlist

mget(ls(pattern = "msleep")) %>% 
        map(~table(.$vore)) 
+0

おかげで@akrun必要な場合は、私は唯一の10分後に答えを受け入れることができます。私は見落とし、上記のコマンドで 'x'を渡して見逃していました。リスト内の項目に対応するデータフレーム名を付けることができるかどうかを知ることは興味深いでしょう。 – Prradep

+0

@Prradep投稿を更新しました – akrun

関連する問題