2014-03-12 73 views
1

2個dataframes之間出現我想在R. 2個dataframes之間比較的字符串頻比較中的R

我的第一數據幀(X):

List1 
Engl001 
Engl002 
Engl003 

我的第二數據幀(Y):

List1 ram 
Engl001 noi2 
Engl001 oui5 
Engl003 ki4 

我的預期輸出:

List1 Count 
Engl001 2 
Engl002 0 
Engl003 1 

謝謝!

回答

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 
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