2017-05-29 68 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 

更確切地說,如何使用單個命令獲得上述兩個輸出。

回答

1

我們一直在list的對象,並通過該listlapply

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

循環得到所需的列table還是其他選項保持物體在list

tidyverse
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