[英]Is there a R function to compare the frequency of occurrences of row elements between two dataframes?
[英]Compare occurrences between 2 dataframes in R
我想比較一下R中兩個數據幀之間的字符串頻率。
我的第一個數據框(X):
List1
Engl001
Engl002
Engl003
我的第二個數據框(Y):
List1 ram
Engl001 noi2
Engl001 oui5
Engl003 ki4
我的預期輸出:
List1 Count
Engl001 2
Engl002 0
Engl003 1
謝謝!
這將是一個解決方案
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
使用系數和表:
# 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.