【发布时间】:2013-09-06 22:08:31
【问题描述】:
我想打印一个大数据框的行和列,其中值也出现在另一个数据框的给定行或列中。我正在尝试基于与值列表重合的 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
我想删除第一行 r1 的值没有出现在“sample”中的列
info.column<-as.data.frame(c(6,1,4,21,15,11,9,12,13,14,15))
并删除第一列 V1 的值未出现在其中的行
info.row<-as.data.frame(c(1,11,3,7,5,21,2))
预期的结果是
V1 V4
r1 1 4
r3 11 14
r5 21 24
有什么建议吗?
【问题讨论】:
-
这是一个非常基本的问题。您能分享一下您尝试过的方法以及您在哪些地方没有找到合适的答案吗?
-
如果它太基本,我很抱歉。你能指导我解决类似的问题吗?我已经搜索了很长时间,特别是关于如何分别从 info.column 和 info.row 中制作一个列表,以便稍后应用 for 循环。但如前所述,它不起作用。非常欢迎任何帮助。
-
R中的子集数据集在每个可用的介绍指南中都有详尽的介绍。将来请在发布到 SO 之前做一些研究。sample[sample$V1 %in% info.row[, 1], sample[1,] %in% info.column[, 1]]