我已经阅读了几篇关于如何使用read.csv导入csv文件但跳过特定列的帖子。但是,我发现的所有示例都只有很少的列,所以很容易做到这样的事情:
columnHeaders <- c("column1", "column2", "column_to_skip")
columnClasses <- c("numeric", "numeric", "NULL")
data <- read.csv(fileCSV, header = FALSE, sep = ",", col.names =
columnHeaders, colClasses = columnClasses)
我有201列,没有列标签。我想跳过最后一栏。如何在不命名所有其他列的情况下执行此操作?非常感谢。
答案 0 :(得分:0)
有点hacky但是,我通常会读取我想要的数据集的少量行,然后使用sapply(..., class)
查找列类型并将最后一行设置为&#34; NULL&#34;。
data<-read.table("test.csv", sep=',', nrows = 100)
colClasses<-sapply(data, class)
colClasses[length(colClasses)]<-"NULL"
然后,您可以将colClasses
传递给read.csv()
函数
答案 1 :(得分:0)
您可以读取所有数据,然后消除违规者。
data <- read.csv("../CAASPP_clustering/ca2016_1_csv_v3.zip")
data_trimmed <- data[,1:(ncol(data)-1)]
如果您希望以编程方式更多地筛选类,那么您可以执行以下操作:
class_list <- lapply(data, class)
chosen_cols <- names(class_list[class_list != "NULL"])
data_trimmed <- data[chosen_cols]