我需要从下面的数据中找到每个团队中的" 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
答案 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))