首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何比较唯一值的计数

如何比较唯一值的计数
EN

Stack Overflow用户
提问于 2017-06-01 19:43:37
回答 1查看 62关注 0票数 2

我需要检查A中的变量PPT中每个唯一值的元素数是否等于B中的PPT中每个唯一值的元素数,以及是否存在仅对A或B唯一的值。

例如:

代码语言:javascript
复制
PPTa <- c("ppt0100109","ppt0301104","ppt0100109","ppt0100109","ppt0300249","ppt0100109","ppt0300249","ppt0100109","ppt0504409","ppt2303401","ppt0704210","ppt0704210","ppt0100109")
CNa <- c(110,54,110,110,49,10,49,110,409,40,10,10,110)
LLa <- c(150,55,150,150,45,15,45,115,405,45,5,15,50)
A <-data.frame(PPTa,CNa,LLa)

PPTb <- c("ppt0100200","ppt0300249","ppt0100109","ppt0300249","ppt0100109","ppt0764091","ppt2303401","ppt0704210","ppt0704210","ppt0100109")
CNb <- c(110,54,110,110,49,10,49,110,409,40)
LLb <- c(150,55,150,150,45,15,45,115,405,45)
B <-data.frame(PPTb,CNb,LLb)

在这种情况下,我们有这些唯一的值,它们出现了一定的次数:

代码语言:javascript
复制
A$PPTa       TIMES
"ppt0100109" 6
"ppt0301104" 1
"ppt0300249" 2
"ppt0504409" 1
"ppt2303401" 1
"ppt0704210" 2

B$PPTb       TIMES
"ppt0100200" 1
"ppt0300249" 2
"ppt0100109" 3
"ppt0764091" 1
"ppt2303401" 1
"ppt0704210" 2

我想创建一个新矩阵(或您建议的任何东西),如果唯一值在A和B中都存在,且元素数相同,则值为0;如果唯一值存在于数据帧A和B中,但元素数不同,则值为1;如果值仅存在于两个数据帧中的一个中,则值为2。类似于:

代码语言:javascript
复制
A$PPTa       TIMES  OUTPUT
"ppt0100109" 6      1
"ppt0301104" 1      2
"ppt0300249" 2      0
"ppt0504409" 1      2
"ppt2303401" 1      0
"ppt0704210" 2      0

B$PPTb       TIMES  OUTPUT
"ppt0100200" 1      2
"ppt0300249" 2      0
"ppt0100109" 3      1
"ppt0764091" 1      2
"ppt2303401" 1      0
"ppt0704210" 2      0
EN

回答 1

Stack Overflow用户

发布于 2017-06-01 20:03:22

您可以使用嵌套的ifelse语句,

代码语言:javascript
复制
ifelse(do.call(paste0, A) %in% do.call(paste0, B), 0, ifelse(A$PPTa %in% B$PPTb, 1, 2))
#[1] 1 0 2 2 0 0
 ifelse(do.call(paste0, B) %in% do.call(paste0, A), 0, ifelse(B$PPTb %in% A$PPTa, 1, 2))
#[1] 1 2 0 0 2 0
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44306604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档