Вот моя небольшая репликация вашей проблемы.
listOfColumns<-list(NULL, c(2,3), 5, NULL)
listOfColumns #print for viewing
#output
#[[1]]
#NULL
#[[2]]
#[1] 2 3
#[[3]]
#[1] 5
#[[4]]
#NULL
MyMatrix<-matrix(1:50, nrow=10, ncol=5)
MyMatrix #print for viewing
#output
# [,1] [,2] [,3] [,4] [,5]
#[1,] 1 11 21 31 41
#[2,] 2 12 22 32 42
#[3,] 3 13 23 33 43
#[4,] 4 14 24 34 44
#[5,] 5 15 25 35 45
#[6,] 6 16 26 36 46
#[7,] 7 17 27 37 47
#[8,] 8 18 28 38 48
#[9,] 9 19 29 39 49
#[10,] 10 20 30 40 50
Во-первых, то, как вы будете хотеть, чтобы Подмножество вашу матрицу так, чтобы вы опустить заданные номера столбцов, чтобы сделать
MyMatrix[-columnNumbers]
В R, отрицательные числа используются для подмножества соответствуют к записям, которые следует опустить.
Следующий выход вызова, что вы хотите
MyMatrix[,-unlist(listOfNumbers)]
#output
# [,1] [,2]
# [1,] 1 31
# [2,] 2 32
# [3,] 3 33
# [4,] 4 34
# [5,] 5 35
# [6,] 6 36
# [7,] 7 37
# [8,] 8 38
# [9,] 9 39
# [10,] 10 40
Если вы хотите сохранить этот результат для дальнейшего использования, вам необходимо хранить его (как Дэвид Робинсон получил в)
MySmallerMatrix<-MyMatrix[,-unlist(listOfNumbers)]
Для confirm: это 'data.table', а не' data.frame', правильно? –
@DavidRobinson, я исправил свою ошибку. По-видимому, эта структура данных является матрицей. – PoGibas
Вы только что запустили строку 'MyMatrix [, - (unlist (MyList))]', а не код 'MyMatrix <- MyMatrix [, - (unlist (MyList))]'? (Если это так, это ваша ошибка). –