Прочитайте.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() функция

Другие вопросы по тегам