我想filter
从任意小组中获取行,其中一个变量与其中一组所取的值相匹配。
structure(list(type = c("A", "A", "A", "A", "B", "B", "B", "B",
"B"), categ = c("apple", "pear", "apple", "banana", "pear", "kiwi",
"apple", "banana", "mango")), .Names = c("type", "categ"), row.names = c(NA,
-9L), class = c("tbl_df", "tbl", "data.frame"))
# type categ
# <chr> <chr>
# A apple
# A pear
# A apple
# A banana
# B pear
# B kiwi
# B apple
# B banana
# B mango
我想从categ
是categ
的A组中type
所取值之一的任何组中得到的行
基本上我想这样做:
df %>%
filter(categ %in% pull(filter(df, type == 'A'), categ))
# type categ
# <chr> <chr>
# A apple
# A pear
# A apple
# A banana
# B pear
# B apple
# B banana
这是一个丑陋的方法,我很确定还有更好的方法,但是我找不到它。
感谢您的帮助,对英语不好表示抱歉。
答案 0 :(得分:3)
一种可能是:
test_dict["pins"].append({
** {k: pin.attrib[k] for k in ['type', 'unit'] if k in pin.attrib},
"name": pin.text
})
答案 1 :(得分:1)
我们也可以使用slice
library(dplyr)
df %>%
slice(match(categ, categ[type == "A"]))
# A tibble: 7 x 2
# type categ
# <chr> <chr>
#1 A apple
#2 A pear
#3 A apple
#4 A banana
#5 A pear
#6 A apple
#7 A banana