r - 如果多列的值在不同的数据框大小中相等 - R
问题描述
我有两个数据框,每个数据框有两列,我想知道如何创建一个向量,1
当两个值都在另一个数据框中,或者0
两者都不在时。
x <- data.frame(A = c(1,2,3,4,5,6,7,1),
B = c(10,1,30,1,50,60,1,80),
stringsAsFactors = FALSE)
y <- data.frame(C = c(1,2,3,4,5,6,7,8,9,10),
D = c(1,20,30,40,50,60,70,80,90,100),
stringsAsFactors = FALSE)
vector <- ifelse(y$C == x$A & y$D == x$B, 1,0) # This works when both dataframe are the same size.
当数据框大小相同时它可以工作,但是当它不是时,我不能使用%in%
它来评估 if A
is inC
和 if B
is in D
,当我试图评估 A 和 B 是否在 C 和 D 中时同时。
解决方案
行的顺序很重要吗?
library(tidyverse)
x <- mutate(x, id=as.character(1:nrow(x)))
y <- mutate(y, id=as.character(1:nrow(y)))
xy <- full_join(y, x, by="id")
xy %>% mutate(result = ifelse(C == A & D == B, 1,0)
)
您期望y
没有“匹配”的行会发生x
什么?
C D id A B result
1 1 1 1 1 10 0
2 2 20 2 2 1 0
3 3 30 3 3 30 1
4 4 40 4 4 1 0
5 5 50 5 5 50 1
6 6 60 6 6 60 1
7 7 70 7 7 1 0
8 8 80 8 1 80 0
9 9 90 9 NA NA NA
10 10 100 10 NA NA NA
推荐阅读
- regex - Lua string.gmatch pattern for multiple commas in a row
- javascript - JS 中的辅助函数
- python - if/elif 不能与打印一起使用
- javascript - 如何在每个循环中对 Json 对象进行分组
- r - R:将数据框中的一个变量的变量从 int 更改为 chr
- regex - 我只想捕获第一个匹配项
- python - 在 python 中加入具有不同条件和分隔符的列表
- javascript - $.getJSON API 的 Cordova 问题
- reason - How to send actions between components?
- php - 什么是定义的(“ABSPATH”)或死();对于非 wordpress SQL