挖掘行并将它们添加到R中的空数据框中

时间:2016-08-03 11:11:17

标签: r csv dataframe

我在csv文件(文件a)中有一个名字列表,它只有名字。其他csv文件(文件b)在第一列中也有几个名称,总共有10列。我想分析文件b的第一列,搜索文件a中的名称,当它们匹配时(文件b的第一列和第j列元素的第i个元素),我想选择所有的行并将其放入空数据框中。我将进一步将此数据框用作csv文件。我怎样才能做到这一点?提前谢谢。

1 个答案:

答案 0 :(得分: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