2017-05-06 166 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