Прочитайте.csv и пропустите последний столбец в R
Я прочитал несколько других постов о том, как импортировать CSV-файлы с read.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 столбцов, без меток столбцов. Я хотел бы пропустить последний столбец. Как можно было бы сделать это, не называя все остальные столбцы для сохранения? Большое спасибо.
2 ответа
Вы можете просто прочитать все данные, а затем устранить правонарушителей.
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]
Немного странно, но я обычно читаю небольшое количество строк нужного набора данных, затем использую sapply(..., class)
чтобы найти типы столбцов и установить последний "NULL".
data<-read.table("test.csv", sep=',', nrows = 100)
colClasses<-sapply(data, class)
colClasses[length(colClasses)]<-"NULL"
Тогда вы можете передать это colClasses
на ваш read.csv()
функция