R:每个$的条件

时间:2015-03-20 03:31:26

标签: r

我需要从下面的数据中找到每个团队中的" P"($ ANA,$ ARI等)。我想过使用subset(),但我不知道该怎么做。任何人都可以建议一种方法吗?

$ANA  
[1] P  RF LF P  P   
Levels: 1B 2B 3B C CF LF P RF SS

$ARI  
[1] P  P  1B 3B P   
Levels: 1B 2B 3B C CF LF P RF SS

$ATL  
[1] P  C  3B P  P   
Levels: 1B 2B 3B C CF LF P RF SS

$BAL  
[1] P  3B P  SS P   
Levels: 1B 2B 3B C CF LF P RF SS

1 个答案:

答案 0 :(得分:0)

如果数据是“列表”,请尝试

 vapply(lst, function(x) sum(x=='P'), 0) 
 #   ANA ARI ATL BAL 
 #    3   3   3   3 

或者

 vapply(lst, function(x) table(x)[7],0) 
 #ANA ARI ATL BAL 
 # 3   3   3   3 

或者

  colSums(mapply(`==`, lst, 'P'))
  #ANA ARI ATL BAL 
  # 3   3   3   3 

数据

lvls <-  c('1B', '2B', '3B', 'C', 'CF', 'LF', 'P', 'RF', 'SS')

lst <- list(ANA= factor(c('P', 'RF', 'LF', 'P', 'P'), levels=lvls),
ARI=factor(c('P', 'P', '1B', '3B', 'P'), levels=lvls), 
ATL=factor(c('P', 'C', '3B', 'P', 'P'), levels=lvls), 
BAL=factor(c('P', '3B', 'P', 'SS', 'P'), levels=lvls))