2016-07-07 2 views
-2

Скажем, у меня есть список, состоящий из целого ряда целых чисел от 1 до 10 с повторением, и я хочу удалить все 0 из этого списка, есть ли простой способ сделать это?Как выбрать элемент, удаленный из списка в R?

Что-то вроде na.omit, но для моего выбора элементов?

+1

Воспроизводимый пример? – Sotos

+0

'x [x == 0] <- NA', затем используйте na.omit. Или, может быть, 'x [x! = 0]'. – zx8754

+0

@Laterow, я не думаю, что это дубликат, поскольку этот вопрос направлен на подмножество 'list' – loki

ответ

1

, так как вы не предоставили пример создать список ls

ls <- list(rep(0:10, 10)) 

lsnew <- ls[[1]][ls[[1]] != 0] 

Следует отметить, что lsnew является числовой вектор, а не список!

Это простой пример подмножества в R. Для получения более подробной информации о различных Подменят структуры данных см:

+0

какой пакет это часть? Я посмотрел в помощь и не смог ее найти. – Qwertford

+0

Это база R. Вам не нужны пакеты для списков. Некоторые сведения о подмножестве [здесь] (http://adv-r.had.co.nz/Subsetting.html) – loki

+0

Где я могу научиться использовать эти квадратные скобки? Я никогда не видел их раньше и не понимаю. что вы написали. – Qwertford

1

, простирающийся @ Ответ loki вы также можете исключить более одного элемента

ls <- list(rep(0:10, 10)) 

#excluding 0 
lsnew <- ls[[1]][which(ls[[1]] != 0)] 

#excluding 0 & 1 
lsnew <- ls[[1]][! ls[[1]] %in% c(0,1)] 
+0

Обобщение, исключающее более одного элемента. Я отредактировал свой ответ, чтобы подумать, что 'which' не требуется. – Latrunculia

 Смежные вопросы

  • Нет связанных вопросов^_^