r - 统计两列中 ''反向''字符串匹配的出现次数

标签 r dataframe data.table

我现在正在处理 R 中的一个表,如下所示:

A B 09-2016
B A 09-2016
A C 10-2016
C A 11-2016
A B 12-2016

我尝试计算前两列中相同行值的出现次数,例如“A B”在表中出现两次,我使用以下 R 代码:

library(data.table)
dt = data.table(data)
dt[, list(Freq =.N, V3), by=list(V1,V2)]

我可以得到以下输出:

A B 2 09-2016
B A 1 09-2016
A C 1 10-2016
C A 1 11-2016
A B 2 12-2016

现在我想将反向模式的出现次数(例如“A B”和“B A”)计算为相同的值并获得以下输出:

A B 3 09-2016
B A 3 09-2016
A C 2 10-2016
C A 2 11-2016
A B 3 12-2016

我的问题是:如何更改上面的代码来处理这种情况?或者还有别的办法吗?谢谢。

最佳答案

library(data.table)
dt <- data.table(V1 = c("A", "B", "A", "C", "A"),
    V2 = c("B", "A", "C", "A", "B"),
    V3 = c("09-2016", "09-2016", "10-2016", "11-2016", "12-2016"))
dt[, tempvar := paste0(sort(c(V1,V2)), collapse = ""), by = 1:nrow(dt)]    
dt[, freq := .N, by = tempvar][, tempvar:=NULL]

关于r - 统计两列中 ''反向''字符串匹配的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43528958/

相关文章:

r - 在 R markdown 中对齐所有 knitr 表

Python3,在pandas数据框中添加不同数量的列

r - 修复更新和检查更新数据条件的循环

r - 使用样式器设置 R 代码样式时,使用 = 而不是 <- 进行赋值

r - `rowname` - 矩阵列表

r - 将具有第三个特征的大量点可视化为颜色 - 一种提高速度的方法

根据多个条件替换 data.frame 上的值

python - 如何在 Pandas 中放置 2 个不同的数据框

r - 使用 data.table 的矩阵运算和组件式加法

r - data.table中的NA