微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否存在R函数来比较两个数据帧之间行元素的出现频率? 数据

如何解决是否存在R函数来比较两个数据帧之间行元素的出现频率? 数据

我有两个数据框

df1
Var1=c("a","b","c")
Freq= c(1,3,8)

df2
Var1= c("a","c")
Freq= c(5,8)

所以我希望我的输出为y&z,因为它们的频率在两个数据帧之间匹配。

解决方法

也许试试看:

#Code
df1$Var1[df1$Freq==df2$Freq]

输出:

[1] "y" "z"

使用了一些数据:

#Data 1
df1 <- structure(list(Var1 = c("x","y","z"),Freq = c(1L,3L,8L)),class = "data.frame",row.names = c(NA,-3L))

#Data 2
df2 <- structure(list(Var1 = c("x",Freq = c(5L,-3L))
,

使用dplyr:

> df1
  Var1 Freq
1    x    1
2    y    3
3    z    8
> df2
  Var1 Freq
1    x    5
2    y    3
3    z    8
> df1 %>% inner_join(df2,by = c('Var1' = 'Var1','Freq' = 'Freq' )) %>% pull(1)
[1] "y" "z"
,

我们可以使用with

with(df1,Var1[Freq == df2$Freq])
#[1] "y" "z"

数据

df1 <- structure(list(Var1 = c("x",-3L))


df2 <- structure(list(Var1 = c("x",-3L))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。