我对R很新,如果这个问题太过于补救,请提前道歉。我从在线数据库下载了两个表,并希望从两列中识别常见(和唯一)条目。我想比较表“HPMT”中的“Genome”列和表“TS_COG”中的“Specie”列。我的代码如下:
导入表格并识别列:
HMPT=read.table("HMPtable.csv", header = TRUE, sep = ",", fill=TRUE)
GL=HMPT$Genome
TS=read.table("TS_COG.csv", header = TRUE, sep = ",", fill =TRUE )
SPL=TS$Specie
确定两列之间的常用条目:
Same=intersect(GL, SPL)
Same
我已经浏览了>相同的列表并且看起来太短了。我手动浏览了两列,找到了未包含在>中的常用条目。我的格式化或导入表格一定有问题。提前谢谢。
PS
答案 0 :(得分:2)
帖子中提到的问题的一种可能性是:
GL <- c("A1", "A2 ", " A3")
TS <- c(" A1", "A2 ", "A3", "A4", "A5 ")
intersect(GL,TS)
#[1] "A2 "
您可以使用str_trim
删除前导/滞后空格来纠正此问题。
library(stringr)
intersect(str_trim(GL), str_trim(TS))
#[1] "A1" "A2" "A3"
或使用gsub
GL1 <- gsub("^ +| +$", "", GL)
TS1 <- gsub("^ +| +$", "", TS)
intersect(GL1, TS1)
#[1] "A1" "A2" "A3"
答案 1 :(得分:0)
HMPT$name <- HMPT$Genome
TS$name <- TS$Specie
common <- merge(HMPT, TS, by="name")