我想筛选基于映射表BSP2R滤光器表值
sector <- factor(c("a", "b", "c"))
a <- c(1, 1, 1)
b <- c(NA, 1, NA)
c <- c(NA, NA, 1)
bsp2 <- data.frame(sector, a, b, c)
colnames(bsp2) <- c("Sector", "Item 1", "Item 2", "Item 3")
bsp2
# Sector Item 1 Item 2 Item 3
# 1 a 1 NA NA
# 2 b 1 1 NA
# 3 c 1 NA 1
过滤规则应该是一个表BSP1
g <- factor(c("Company 1", "Company 2", "Company 3", "Company 4", "Company 5"))
w <- factor(c("a", "b", "c", "a", "c"))
x <- c(28, 18, 25, NA, 21)
y <- c(80, NA, 74, 101, NA)
z <- c(170, 174, 183, NA, 185)
bsp1 <- data.frame(g, w, x, y, z)
colnames(bsp1) <- c("Company", "Sector", "Item 1", "Item 2", "Item 3")
rm(w, x, y, z)
bsp1
# Company Sector Item 1 Item 2 Item 3
# 1 Company 1 a 28 80 170
# 2 Company 2 b 18 NA 174
# 3 Company 3 c 25 74 183
# 4 Company 4 a NA 101 NA
# 5 Company 5 c 21 NA 185
: 对于每个在bsp2中该项目不是NA的扇区,应该删除该项目中来自相应扇区并具有NA的bsp1中的行。
的期望的结果看起来像因此bsp3
bsp3 <- bsp1[c(1, 3, 5),]
bsp3
# Company Sector Item 1 Item 2 Item 3
# 1 Company 1 a 28 80 170
# 3 Company 3 c 25 74 183
# 5 Company 5 c 21 NA 185
公司2滴,如项2需要对于b。 5号线项目2不需要扇区3
没有放到我想到了所有部门在BSP1与为载体下面的函数产生的相关列向量的应用功能。
a <- !is.na(bsp2[1,])
a <- which(a==c("TRUE"))
不幸的是,在一个矢量的滤波器测试中,我有一个问题,b被解释为矩阵。
b <- is.na(bsp1[, a])
c <- which(b==c("TRUE"))
reduced2016b <- data2013[-c,]
即使我手动设置矢量,过滤结果不是我期望的。 如果有人有解决这个问题的想法,这将是伟大的。部分步骤也可以帮助我。
预先感谢您!
这与我的不一样......它和我的 – Sotos
完全一样“*上面的一个非常相似的答案,在它发布时刚刚完成*”嗯,通常,当发生这种情况时它发生了很多),人们只是感叹,不发布,并从它是相似的或相同的另一种答案给予好评对方的回答... – Cath
反正分开,通常这是最好的做出那样的评论(”刚刚完成时...“)在这里的评论。答案的主体应该主要直接回答这个问题。 – Frank