簡體   English   中英

如何在R中的數據框中選擇兩列?

[英]How can I select two columns in a dataframe in R?

想象一下,我有2個df,名為A和B.對於df A的每一行,我想檢查B df中是否有相應的行。 在下面的示例中,代碼只打印一個答案為TRUE,因為df A中的最后一行與df B中的最后一行不匹配。

A <- NULL
B <- NULL
A <- data.frame(A = c('a','b','c','d','e'), B = c('1','2','3','4','5'))
B <- data.frame(A = c('a','b','c','d','f'), B = c('1','2','3','4','5'))

i <- 0
for(i in 1: length(A$A))
{
  point <- A[i,]
  if(!point %in% B[which[1:2]])
    print(TRUE)
}
bool = Reduce(paste, A) %in% Reduce(paste, B)
transform(A, msg = c("Absent", "Present")[bool + 1])
#  A B     msg
#1 a 1 Present
#2 b 2 Present
#3 c 3 Present
#4 d 4 Present
#5 e 5  Absent

您可以檢查兩個表的反連接是否包含任何行(即,如果公共列上的兩個數據幀之間有任何行不相等),如果是,則打印為TRUE

if(diff_rows <- nrow(dplyr::anti_join(A, B)) > 0) print(diff_rows)

# Joining, by = c("A", "B")
# [1] TRUE
# Warning message:
# Column `A` joining factors with different levels, coercing to character vector

如果要忽略警告,可以清除輸出

if(diff_rows <- nrow(suppressWarnings(dplyr::anti_join(A, B, by = names(A)))) > 0) 
  print(diff_rows)

# [1] TRUE 

暫無
暫無

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

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