2016-08-03 69 views
-2

我有一個csv文件(文件a)中的名稱列表,它只有名稱。其他csv文件(文件b)在第一列中也有多個名稱,共有10列。我想分析文件b的第一列,搜索文件a中的名稱,並在它們匹配時(文件a的第i個元素和文件b的第一列的第j個元素),我想挑選所有的將其放入空白數據框中。我將進一步將此數據框用作csv文件。我怎樣才能做到這一點?提前致謝。挖掘行並將它們添加到R中的空白數據框中

+2

請提供數據幀a和b,並與所需的輸出的第三數據幀的最小例子。 – user2673238

+0

你可以參考[如何做一個偉大的R可重現的例子?](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)最小的例子。 –

回答

0

理想情況下,您應該共享一個可重複使用的示例。但是,我會爲你使用內置的mtcars數據集。根據我對你的問題的理解做了這個。

數據準備

#Taking any random 6 sample rownames from mtcars dataset. Just to generalize making 
#it as 3 X 2 dataframe 

fileA <- data.frame(matrix(sample(row.names(mtcars), 6), nrow = 3)) 
fileA 
#  X1     X2 
#1 AMC Javelin  Ferrari Dino 
#2 Porsche 914-2 Chrysler Imperial 
#3 Merc 450SE Cadillac Fleetwood 

#Making first column as rownames of mtcars and then removing the rownames 
fileB <- cbind(Column1 = rownames(mtcars), mtcars) 
rownames(fileB) <- NULL 


# Column1   mpg cyl disp hp drat wt qsec vs am gear carb 
#27 Porsche 914-2  26.0 4 120.3 91 4.43 2.140 16.7 0 1 5 2 
#28 Lotus Europa  30.4 4 95.1 113 3.77 1.513 16.9 1 1 5 2 
#29 Ford Pantera L  15.8 8 351.0 264 4.22 3.170 14.5 0 1 5 4 
#30 Ferrari Dino  19.7 6 145.0 175 3.62 2.770 15.5 0 1 5 6 
#31 Maserati Bora  15.0 8 301.0 335 3.54 3.570 14.6 0 1 5 8 
#32 Volvo 142E   21.4 4 121.0 109 4.11 2.780 18.6 1 1 4 2 

最後現在就可以使用,

fileB[fileB$Column1 %in% unlist(fileA), ] 

#   Column1 mpg cyl disp hp drat wt qsec vs am gear carb 
#12   Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3  
#15 Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4 
#17 Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4 
#23  AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2 
#27  Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2 
#30  Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6