r - 根据两列中值的组合从数据框中提取行
问题描述
我有一个数据框
a <- c('A','A','A','A','B','B','C','C')
b <- c(1,2,1,3,1,3,1,6)
c <- c('K','K','H','H','K','K','H','H')
frame <- data.frame(a,b,c)
> frame
a b c
1 A 1 K
2 A 2 K
3 A 1 H
4 A 3 H
5 B 1 K
6 B 3 K
7 C 1 H
8 C 6 H
现在我想通过以下方式提取数据:如果“a”中的字符串出现在带有“K”的行中并且出现在带有“H”的行中,则带有“K”的行将被忽略。最后它应该是这样的:
> frame
a b c
1 A 1 H
2 A 3 H
3 B 1 K
4 B 3 K
5 C 1 H
6 C 6 H
也许你有什么想法。谢谢!
解决方案
您可以使用在has和in 列intersect
中查找字符串,然后提取那些 column包含.a
H
K
c
c
K
frame[!(frame$a %in% intersect(frame$a[frame$c=="K"],
frame$a[frame$c=="H"]) & frame$c=="K"),]
# a b c
#3 A 1 H
#4 A 3 H
#5 B 1 K
#6 B 3 K
#7 C 1 H
#8 C 6 H
推荐阅读
- python - 带有“if”函数的“while”循环和Python中“if”函数的“:”之后的错误
- ios - 在 UITableview 内的自动调整大小的标签上设置非常长的文本会破坏 NSLayoutConstraint
- node.js - 为什么 node.js 对话流示例代码将输出上下文复制到输入上下文?
- html - 在容器中定位内容
- java - 是否可以将自己的密钥放入 AndroidKeyStore?
- r - R代码-随机森林回归-变量重要性分析-显着性检验
- reactjs - React/Material-UI:如何将 FloatingActionButton 附加到 AppBar?
- excel - VBA 宏或函数可以通过 Windows 命令调用或执行吗?
- arrays - 检测数组中重复值的最快方法?(VBA)
- vhdl - 如何使输入数据大小可变的 CRC 生成器函数