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