R найти нерасширенные строки на основе столбцов других данных [duplicate]

var myStringArray = ["hello", "World"];
myStringArray.forEach(function(val, index){
   console.log(val, index);
})
0
задан Rich Scriven 17 December 2015 в 03:54
поделиться

3 ответа

Мы можем использовать anti_join

library(dplyr)
anti_join(A, B, by = c('Col1', 'Col2'))
5
ответ дан akrun 28 August 2018 в 11:34
поделиться
library(data.table)
A = data.table(Col1 = 1:4, Col2 = 4:1, Col3 = letters[1:4])
#   Col1 Col2 Col3
#1:    1    4    a
#2:    2    3    b
#3:    3    2    c
#4:    4    1    d

B = data.table(Col1 = c(1,3,5), Col2 = c(4,2,1))
#   Col1 Col2
#1:    1    4
#2:    3    2
#3:    5    1

A[!B, on = c("Col1", "Col2")]
#   Col1 Col2 Col3
#1:    2    3    b
#2:    4    1    d
8
ответ дан eddi 28 August 2018 в 11:34
поделиться

Здесь вы можете использовать interaction:

A <- data.frame(Col1=1:3, Col2=2:4, Col3=10:12)
B <- data.frame(Col1=1:2, Col2=2:3, Col3=10:11)
A
#  Col1 Col2 Col3
#1    1    2   10
#2    2    3   11
#3    3    4   12

B
# Col1 Col2 Col3
#1    1    2   10
#2    2    3   11

byv <- c("Col1","Col2")
A[!(interaction(A[byv]) %in% interaction(B[byv])),]

#  Col1 Col2 Col3
#3    3    4   12

Или создать уникальный идентификатор для каждой строки, а затем исключить те, которые были объединены:

A[-merge(cbind(A[byv],id=seq_len(nrow(A))), B[byv], by=byv)$id,]
3
ответ дан thelatemail 28 August 2018 в 11:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: