我有一个csv文件,我们称之为file1.csv。当我读取一个新文件,比如file2.csv时,我想先检查一下file1.csv中的所有列基本上是我期望的数据列都存在于file2.csv中。
file2.csv可能有其他列,但我想构建我的数据集,使其基本上被修剪为file1.csv中的列。
我该怎么做?
编辑: @ user1436187,对不起我没想到%in%。我能够使用它
findstr.exe
答案 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)]