2015-07-24 4 views
4

У меня есть набор данных с 40 столбцами по 100 000 строк. Поскольку число столбцов велико, я хочу удалить некоторые из них. Я хочу удалить строки из 10.000-20.000; от 30.000-40.000 и от 60.000-70.000; так что у меня есть в результате набор данных с 40 столбцами с 70 000 строк. Первый столбец - идентификатор начинается с 1 (называется ItemID) и заканчивается на 100 000 для последнего. Может кто-то, пожалуйста, помогите мне.Удалить определенные строки из набора данных

Пробовал это удалить столбцы от 10000 до 20000, но подмигнули не работает (давайте набор данных называется «Data»):

Data <- Data[Data$ItemID>10000 && Data$ItemID<20000] 
+0

не была точной линией: закрыл ее с помощью] – AbsoluteBeginner

+1

Do 'toremove = c (10000: 20000, 30000: 40000, 60000: 70000); Данные [! Данные $ ItemID% в% toremove,] ' –

+0

Или просто' подмножество (Data,! ItemID% in% c (10000: 20000, 30000: 40000, 60000: 70000)) ' –

ответ

2

Severeal способы сделать это. Что-то вроде этого соответствует вашим потребностям?

dat <- data.frame(ItemID=1:100, x=rnorm(100)) 

# via row numbers 
ind <- c(10:20,30:40,60:70) 
dat <- dat[-ind,] 

# via logical vector 
ind <- with(dat, { (ItemID >= 10 & ItemID <= 20) | 
        (ItemID >= 30 & ItemID <= 40) | 
        (ItemID >= 60 & ItemID <= 70) }) 
dat2 <- dat[!ind,] 

Чтобы принять его в масштабе набора данных, просто ind в зависимости от размера вашего набора данных (умножение может сделать).

1

Я думаю, вы должны быть в состоянии сделать

data <- data[-(10000:20000),] 

, а затем удалить остальные строки аналогичным образом.

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