如何从.CSV文件中删除大量行?

时间:2017-04-15 01:23:20

标签: r csv

我是R和Rstudio的新手,所以这看起来有点奇怪。

我目前正在尝试从非常大的(大约400,000行).CSV文件中删除一些行,但是我遇到了一些问题。

Example of the Table(.CSV file)

这是我想要的输出(在这个例子中,我们删除了第6行: Here is the output i want (In this example, we deleted the row 6

1-执行时:

tablename <- tablename[c(-row1, -row2), ]

for,假设有7行,它第一次执行时效果很好。然后,如果我为要删除的另一行执行相同的语法。例如:

tablename <- tablename[c(-row3, -row4), ]" )

似乎它不删除我指定的行。

2-由于上述问题,我尝试创建一个包含我要删除的所有行的“超级”语法。例如:

tablename <- tablename[c(-row1, -row2, ..., -row299, -row300), ]

与此相关的是,它似乎什么都不做(再次)。它只是在控制台中显示为“+”,而不是'&gt; ”。

我的最后一个选项是使用写字板中的搜索关键字选项删除.CSV文件中的所有不需要的行,但它不可行,只要它花了我9个小时。

2 个答案:

答案 0 :(得分:1)

根据您对意图的进一步讨论(可在Nick Knauer的评论中找到)在此处复制:

  

我将提供有关该项目的一些情报以及我为什么这样做。   请考虑列&#39;代码&#39;。列代码唯一指定一个Person(   对于同一个人,它可以超过1行。在那种情况下,守则   将是相同的)考虑,另一列&#39;类&#39;。类指定一个   一个人的社会阶层。我使用SQL命令来查看是否相同   人在文件中有不同的社会阶层。我注意到的是   结果对同一个人有几个社交类。该   我尝试写上面的sintax是删除有的行   每人不同的SocialClasse。

啊哈!只需告诉您的计算机做出这些判断 AND 让它相应地过滤掉它们。真的很擅长!

首先将该类表连接到具有left_join的员工数据框。 然后用group_by(code) %>% mutate(cnt_class = n_distinct(class))你可以通过代码揭示哪些是你的类。然后使用filter,您可以最轻松地处理您的欺骗行为。

如果您想获得更精确的帮助,请发布reproducible example tl:dr - 使用dput制作一个数据框,我可以将其复制并粘贴到我的rstudio中并修补(从不可能使用数据图片。)

有关更多信息可帮助您提升学习曲线,请参阅此处了解其他快速简便dplyr数据争论选项的简单菜单/明细 - https://www.rstudio.com/wp-content/uploads/2015/02/data-wrangling-cheatsheet.pdf

答案 1 :(得分:0)

要删除R中的行,您可以这样做:

employee <- c('John Doe','Peter Gynn','Jolie Hope')
salary <- c(21000, 23400, 26800)
startdate <- as.Date(c('2010-11-1','2008-3-25','2007-3-14'))
employ.data <- data.frame(employee, salary, startdate)

newdf<-employ.data[-c(1,2),]

对于特定的行,如果你想对一系列行进行,你可以这样做:(这将删除所有行。)

newdf<-employ.data[-c(1:3),]