如何确保两个csv文件在R中具有相同的列?

时间:2015-07-10 06:15:53

标签: r dataframe

我有一个csv文件,我们称之为file1.csv。当我读取一个新文件,比如file2.csv时,我想先检查一下file1.csv中的所有列基本上是我期望的数据列都存在于file2.csv中。

file2.csv可能有其他列,但我想构建我的数据集,使其基本上被修剪为file1.csv中的列。

我该怎么做?

编辑: @ user1436187,对不起我没想到%in%。我能够使用它

findstr.exe

2 个答案:

答案 0 :(得分:1)

如果导入整个文件,这是一种方法。

file1 <- data.frame(a = runif(5), b = runif(5), c = runif(5))
file2 <- data.frame(d = runif(5), e = runif(5), a = runif(5), b = runif(5), c = runif(5))

file2 <- file2[, names(file2) %in% names(file1)] # file2 now has only columns present in file1
# file2 <- file2[, names(file1)] # this would also work

另一种方法是仅导入文件的第一行以获取列名,使用%in%执行类似操作,然后使用参数{{仅导入file2中的特定列。 1}}在colClasses和亲属。

答案 1 :(得分:1)

如果'dat1'中的所有列都出现在'dat2'中,您可以根据'dat1'中的列名称对'dat2'进行子集化

 dat2New <- dat2[names(dat1)]