簡體   English   中英

逐行檢查一列中的值是否存在於其他多列 R

[英]check rowwise if value in one column is present in multiple other columns R

大腦卡住了。 我需要找到一種方法來在同一行內的多個其他列中查找一列的逐行值。 比如...... 50 或 60。在下面的示例中,“是 B 或 C 中的 A 的行值嗎?” 但是使用實際數據中的列位置,而不是列的名稱,因為太多了。 我知道 case_when 會成功,但要測試的列又太多了。

例子:

df1 <- data.frame(A = c(4, 6,3), 
                  B = c(4, 1, 1), 
                  C = c(1, 1, 3))

我用 map() 嘗試了這個,但它似乎在第 3 列中查找數字 4:59 的任何實例,而不是在第 4 列到第 59 列中。

nums <- c(4:59)
cols <- c(3)

wL$Check_Median <-
  wL[, cols] %>%
  map(~.x %in% nums) %>%
  reduce(`|`)

我想象它會起作用,使用 4:59 而不是命名列,如下所示:

nums <- c(B:C)
cols <- c(A)

wL$D <-
  wL[, cols] %>%
  map(~.x %in% nums) %>%
  reduce(`|`)

結果將是:

df2 <- data.frame(A = c(4, 6,3), 
                  B = c(4, 1, 1), 
                  C = c(1, 1, 3),
                  D = c(TRUE, FALSE, TRUE))

猜猜這對任何人來說都不夠有趣..

這是一個解決方案: wL$D <- Reduce( | , lapply(wL[28:52], == , wL[,13]))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM