比较R中2个数据帧之间的出现次数

时间:2014-03-12 13:51:43

标签: r count compare equality

我想比较R中两个数据帧之间的字符串频率。

我的第一个数据帧(X):

 List1
 Engl001
 Engl002
 Engl003

我的第二个数据帧(Y):

 List1    ram
Engl001   noi2
Engl001   oui5
Engl003   ki4

我的预期输出:

  List1    Count
 Engl001    2
 Engl002    0
 Engl003    1

谢谢!

2 个答案:

答案 0 :(得分:2)

这将是一个解决方案

A<-read.table(text=" List1
 Engl001
 Engl002
           Engl003", header=TRUE,colClasses = "character")

B <- read.table(text=" List1    ram
Engl001   noi2
Engl001   oui5
Engl003   ki4", header=TRUE,colClasses = "character")

注意: A$List1B$List1属于班级角色!

tmp<-sapply(A$List1,function(x){sum(B$List1==x)})
data.frame(List1=names(tmp),Count=tmp)

结果:

          List1 Count
Engl001 Engl001     2
Engl002 Engl002     0
Engl003 Engl003     1

答案 1 :(得分:0)

使用因子和表:

# Dummy data
X <- read.table(text=" List1
 Engl001
 Engl002
              Engl003", header=TRUE,colClasses = "character")
Y <- read.table(text=" List1    ram
                Engl001   noi2
                Engl001   oui5
                Engl003   ki4", header=TRUE,colClasses = "character")

# get counts, add colnames
result <- as.data.frame(table(factor(Y$List1,levels=unique(X$List1))))
colnames(result) <- c("List1","Count")

# Output
result
# List1 Count
# 1 Engl001     2
# 2 Engl002     0
# 3 Engl003     1

感谢Biostar

的@hardingnj