我有以下两个数据帧,第一个是主数据帧,第二个是逻辑数据帧.

df <- data.frame(
      x= c(1:10),
      y= c(11:20),
      z= c(21:30))
> df
  x  y  z
1   1 11 21
2   2 12 22
3   3 13 23
4   4 14 24
5   5 15 25
6   6 16 26
7   7 17 27
8   8 18 28
9   9 19 29
10 10 20 30

logic_df <- data.frame(
  x = c(rep(TRUE,2),rep(FALSE,8)),
  y = c(rep(TRUE,3),rep(FALSE,7)),
  z = c(rep(FALSE,9),rep(TRUE,1))
)
    > logic_df
       x     y     z
1   TRUE  TRUE FALSE
2   TRUE  TRUE FALSE
3  FALSE  TRUE FALSE
4  FALSE FALSE FALSE
5  FALSE FALSE FALSE
6  FALSE FALSE FALSE
7  FALSE FALSE FALSE
8  FALSE FALSE FALSE
9  FALSE FALSE FALSE
10 FALSE FALSE  TRUE

我的目标是实现这一点:

 x  y  z
1  1 11 21
2  2 12 22
3  3 13 23
4 10 20 30

我有很长的路要走,所以如果有人有捷径的话,我会很感激.提前感谢

推荐答案

你可以试试

df[rowSums(logic_df) > 0,]
    x  y  z
1   1 11 21
2   2 12 22
3   3 13 23
10 10 20 30

我不知道31是从哪里来的.

R相关问答推荐

使用%in%时如何应用多个条件?

R:随机抽取所有可能排列的样本

使用列表列作为case_when LHS的输入

使用map()内的公式()创建多个公式

通过绘图 Select 线串几何体并为其着色

如何创建构成多个独立列条目列表的收件箱框列?

如何求解arg必须为NULL或deSolve包的ode函数中的字符向量错误

如何自定义Shapviz图?

在R中创建一个包含转换和转换之间的时间的列

有没有一个R函数允许你从一个数字变量中提取一个数字,而不考虑它的位置(不仅仅是第一个或最后一个数字?

在for循环中转换rabrame

在R中使用数据集名称

根据元素和前一个值之间的差值过滤矩阵的元素

如何在R中描绘#符号?

在GG图中绘制射线的自动程序

为左表中的所有行使用值Fill滚动左连接

将多个列值转换为二进制

从数据创建数字的命名列表.R中的框

按组内中位数分类

从线的交点创建面