R 基于另一个数据帧的值删除数据帧的行和列

R 基于另一个数据帧的值删除数据帧的行和列,r,list,loops,dataframe,R,List,Loops,Dataframe,我想打印一个大数据框的行和列,其中的值也出现在另一个数据框的给定行或列中。我正在尝试一个基于与值列表重合的for循环,但没有成功。一个简化的例子: 给定数据帧 r1<-c(1,2,3,4,5) r2<-c(6,7,8,9,10) r3<-c(11,12,13,14,15) r4<-c(16,17,18,19,20) r5<-c(21,22,23,24,25) sample<-as.data.frame(rbind(r1,r2,r3,r4,r5))

我想打印一个大数据框的行和列,其中的值也出现在另一个数据框的给定行或列中。我正在尝试一个基于与值列表重合的for循环,但没有成功。一个简化的例子:

给定数据帧

r1<-c(1,2,3,4,5)
r2<-c(6,7,8,9,10)
r3<-c(11,12,13,14,15)
r4<-c(16,17,18,19,20)
r5<-c(21,22,23,24,25)
sample<-as.data.frame(rbind(r1,r2,r3,r4,r5))

        V1  V2  V3  V4  V5
   r1   1   2   3   4   5
   r2   6   7   8   9   10
   r3   11  12  13  14  15
   r4   16  17  18  19  20
   r5   21  22  23  24  25

有什么建议吗?

sample[sample$V1%在%info.row[,1]中,sample[1,]%在%info.column[,1]]

让我们把它分解一下。查看每个部分返回的内容:

> sample$V1 %in% info.row[, 1]
[1]  TRUE FALSE  TRUE FALSE  TRUE
这表示在data.frame
info.row
的第一列中找到了名为
V1
sample
列中的哪些行。或者换句话说,我在第1、3和5行中找到匹配的值

同样地:

> sample[1,] %in% info.column[, 1]
[1]  TRUE FALSE FALSE  TRUE FALSE
表示我想要
sample
的列,其中data.frame
info.column
的第一列位于第一行。换句话说,我在第1列和第4列中找到了匹配的值

因此,结果将是3x2,相当于
样本[c(1,3,5),c(1,4)]


当使用
[
时,您可以将其理解为
子集
。因此,返回[rows,columns],其中这两个表达式为
TRUE

示例[sample$V1%在%info.row[,1]中,示例[1,]%在%info.column[,1]

让我们将其分解。看看每一部分返回的内容:

> sample$V1 %in% info.row[, 1]
[1]  TRUE FALSE  TRUE FALSE  TRUE
这表示在data.frame
info.row
的第一列中找到了名为
V1
sample
列中的哪些行。换句话说,我在第1、3和5行中找到了匹配的值

同样地:

> sample[1,] %in% info.column[, 1]
[1]  TRUE FALSE FALSE  TRUE FALSE
表示我需要
sample
的列,其中data.frame
info.column
的第一列位于第一行。换句话说,我在第1列和第4列中找到匹配的值

因此,结果将是3x2,相当于
样本[c(1,3,5),c(1,4)]


当使用
[
时,您可以将其理解为
子集
。因此返回[rows,columns]这是一个非常基本的问题。你能分享一下你所做的尝试和你所看到的没有找到合适答案的地方吗?如果这太基本了,我很抱歉。你能告诉我一个类似的问题吗?我已经搜索了很长时间,特别是关于如何列出,resexpective info.column和info.row,以便稍后应用for循环。但正如前面所说,它不起作用。欢迎提供任何帮助。
R
中的子集数据集在所有可用的介绍指南中都有详细介绍。将来,请在发布到SO之前做一些研究。
sample[sample$V1%in%info.row[,1],sample[1,]%info.列[,1]]中的%
这是一个非常基本的问题。你能分享你尝试过的内容以及你在哪里找不到合适的答案吗?如果答案太基本,我很抱歉。你能告诉我一个类似的问题吗?我已经搜索了很长时间,特别是关于如何将info.column和info.row分别列出给以后的ap使用for循环。但正如前面所说,它不起作用。欢迎提供任何帮助。
R
中的子集数据集在所有可用的介绍指南中都有详细介绍。将来,请在发布之前做一些研究。
sample[sample$V1%in%info.row[,1],sample[1,]%info.column[,1]]
非常感谢,很明显,我一直在寻找基于值列表的for循环,这要简单得多。非常感谢,很明显我一直在寻找基于值列表的for循环,这要简单得多。
> sample[1,] %in% info.column[, 1]
[1]  TRUE FALSE FALSE  TRUE FALSE