返回哪些元素是重复的行,而不是逻辑向量

时间:2018-05-26 22:48:21

标签: dataframe

我知道包dplyr的重复功能。问题是它只返回一个逻辑向量,表明哪些元素(行)是重复的。 我想得到一个向量,它返回那些带有特定元素的行。

我想要回到A和B的所有观察结果,因为它们具有关键名称和年份重复值。

我已经编码了这个:

 >df %>% group_by(Name) %>% filter(any(( ?????)))

但我不知道如何编写代码的最后部分。

任何想法?

谢谢:)

1 个答案:

答案 0 :(得分:3)

使用class NikeSpider(scrapy.Spider): name = 'nike' allowed_domains = ['nike.com', 'store.nike.com'] start_urls = ['https://www.nike.com/t/air-vapormax-flyknit-utility-running-shoe-XPTbVZzp/AH6834-400'] def start_requests(self): for url in self.start_urls: yield SplashRequest ( url=url, callback=self.parse, args= { 'wait': 5 } ) def parse(self, response): name = response.xpath('//*[@id="RightRail"]/div/div[1]/div[1]/h1/text()').extract_first() imageURL = response.css('#PDP > div > div:nth-child(2) > div.css-1jldkv2 > div:nth-child(1) > div > div > div.d-lg-h.bg-white.react-carousel > div > div.slider-container.horizontal.react-carousel-slides > ul > li.slide.selected > div > picture:nth-child(3) > img::attr(src)').extract_first() category = response.css('#RightRail > div > div.d-lg-ib.mb0-sm.mb8-lg.u-full-width > div.ncss-base.pr12-sm > h2::text').extract_first() url = response.url if name != None and imageURL != None and category != None: item = ProductItem() item['name'] = name item['imageURL'] = imageURL item['category'] = category item['URL'] = url yield item 的选项可以通过对dplyrName进行分组来计算计数。然后仅对Year进行分组并过滤具有任何Name的组(意味着重复):

count > 1

数据:

library(dplyr)

df %>% group_by(Name, Year) %>% 
  mutate(count = n()) %>%
  group_by(Name) %>%
  filter(any(count > 1)) %>%
  select(-count)

# # A tibble: 7 x 3
# # Groups: Name [2]
#   Name   Year Value
#   <chr> <int> <int>
# 1 A      1990     5
# 2 A      1990     3
# 3 A      1991     5
# 4 A      1995     5
# 5 B      2000     0
# 6 B      2000     4
# 7 B      1998     5