簡體   English   中英

比較R中2個數據幀之間的出現

[英]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$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

使用系數和表:

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM