Как удалить столбцы из data.frame?

Не столько «Как ты ...?» но еще: «Как ВЫ ...?»

Если у вас есть файл с 200 столбцами, который вам дает, и вы хотите сократить его до нескольких столбцов, необходимых для анализа, как вы это сделаете? Предлагает ли одно решение преимущества перед другим?

Предполагая, что у нас есть фрейм данных со столбцами с col1, col2 до col200. Если вы хотите только 1-100, а затем 125-135 и 150-200, вы можете:

dat$col101 <- NULL
dat$col102 <- NULL # etc

или

dat <- dat[,c("col1","col2",...)]

, или

dat <- dat[,c(1:100,125:135,...)] # shortest probably but I don't like this

, или

dat <- dat[,!names(dat) %in% c("dat101","dat102",...)]

Что-нибудь еще, что мне не хватает? Я знаю, что это довольно субъективно, но это одна из тех мелочей, в которые вы можете погрузиться и начать делать это одним способом и войти в привычку, когда есть гораздо более эффективные способы. Очень похоже на этот вопрос о , который .

РЕДАКТИРОВАТЬ:

Или есть простой способ создать работоспособный вектор имен столбцов? name (dat) не печатает их с запятыми между ними, что вам нужно в приведенных выше примерах кода, поэтому, если вы распечатываете имена таким образом, у вас везде есть пробелы, и вам придется вручную вводить запятые ... Есть ли команда, которая даст вам "col1","col2", "col3", ... в качестве вывода, чтобы вы могли легко получить то, что хотите?

38
задан Community 23 May 2017 в 12:10
поделиться