2017-05-06 173 views
-1

我正在尝试搜索矢量中的数据。所以我有两个表(变成矢量),并且我试图搜索矢量“a”中矢量“b”的信息。我的代码下面提供了,有没有人知道如何解决这个问题?当我想创建一个新的向量时,我只会得到一个TRUE/FALSE。 “a”向量的第2列包含我试图从向量“b”搜索的信息。提取矢量以在R中创建新矢量

a = read.table("data.txt",stringsAsFactors=FALSE,sep="\t") 
a = as.vector(a[[2]]) 
b <- read.table("info.txt", stringsAsFactors = FALSE, sep = "\t") 
b = as.vector(b[[1]]) 
f <- a[unlist(lapply(b, function(x) any(x %in% b)))] 
+0

请[编辑]你的问题,显示了'和'的内容' b',至少一部分。最好添加'dput(a)'和'dput(b)'的结果 - 谢谢。顺便说一句:你的代码看起来非常复杂,这使得很难掌握你的预期结果。所以,请添加预期的结果。 – Uwe

+1

当你谈到“a”vector_的_column 2时,我对你如何使用术语_vector_感到困惑。 'read.table()'的结果是一个data.frame,它由向量aka列组成。 – Uwe

回答

1

你只需要告诉R来使用真假,构建以某种方式的一个子集:

c<-subset(a, a%in% b) 
+0

我试过但在矢量“b”中关于矢量“a”的所有信息呈现出不同的顺序,而r在矢量“a”至“b”中按顺序读取: a(1,2,3,4 ,5,6) b(5,3,2,4) 所以我不知道如何解决这个问题。 –

+0

我刚刚用'b'乱跑了一个测试,它仍然把所有这些选中了......没有看到你的数据,就不可能说出你为什么得到你得到的答案。你可以使用循环... – sconfluentus