我想比较R中两个数据帧之间的字符串频率。
我的第一个数据帧(X):
List1
Engl001
Engl002
Engl003
我的第二个数据帧(Y):
List1 ram
Engl001 noi2
Engl001 oui5
Engl003 ki4
我的预期输出:
List1 Count
Engl001 2
Engl002 0
Engl003 1
谢谢!
答案 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$List1
和B$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