我想篩選基於映射表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