这是一个示例数据框。
df = data.frame(company = c('a', 'b', 'c', 'd'),
bond = c(0.2, 1, 0.3, 0),
equity = c(0.7, 0, 0.5, 1),
cash = c(0.1, 0, 0.2, 0))
df
company bond equity cash
1 a 0.2 0.7 0.1
2 b 1.0 0.0 0.0
3 c 0.3 0.5 0.2
4 d 0.0 1.0 0.0
我需要找到任何列中包含 1.0 的公司。
预期结果应该是b and d.
请提供适用于 >20 列的解决方案。
解决方案如df %>% filter(bond == 1)
仅适用于搜索特定列。
dplyr
or data.table
解决方案是可以接受的。
Thanks.
我们还可以使用Reduce
with ==
res <- df[Reduce(`+`, lapply(df[-1], `==`, 1))!=0,]
res
# company bond equity cash
#2 b 1 0 0
#4 d 0 1 0
res$company
#[1] b d
#Levels: a b c d
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)