我是R和Rstudio的新手,所以这看起来有点奇怪。
我目前正在尝试从非常大的(大约400,000行).CSV文件中删除一些行,但是我遇到了一些问题。
这是我想要的输出(在这个例子中,我们删除了第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个小时。
答案 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),]