从数据集中删除特定行

4
我有一个数据集,它有40列,每列有100000行。由于列的数量太大,我想删除其中的一些。我想删除第10000到20000行;30000到40000行和60000到70000行,这样我就可以得到一个只有40列和70000行的数据集。第一列是ID,从1开始(称为ItemID),到最后一个为100000。请问有人可以帮帮我吗?
我尝试过删除从10000到20000列,但它没有起作用(假设数据集被称为“Data”)。
Data <- Data[Data$ItemID>10000 && Data$ItemID<20000]

不是确切的代码行:用 ] 关闭了它。 - AbsoluteBeginner
1
执行以下代码:toremove = c(10000:20000, 30000:40000, 60000:70000); Data[!Data$ItemID %in% toremove,] - Veerendra Gadekar
或者简单地使用 subset(Data, !ItemID %in% c(10000:20000, 30000:40000, 60000:70000)) - Veerendra Gadekar
2个回答

2
有几种方法可以做到这一点。类似这样的东西是否适合您的需要?
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),]

然后以类似的方式删除其他行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接