对不起,标题冗长-我保证,当您查看下面的示例时,标题将很清楚。我有以下简短的数据框:
dput(mydf)
structure(list(retweet_count = c(186L, 140L, 205L, 30L, 74L,
190L, 27L), hashtags = list("Potato", "Runner", "Money", c("Cheese",
"Potato", "Hammer", "Blue", "Runner", "Fighter"), c("Trust",
"Believe"), "YouCanDoIt", c("Potato", "OneFamily"))), row.names = c(NA,
-7L), class = c("tbl_df", "tbl", "data.frame"))
# A tibble: 7 x 2
retweet_count hashtags
<int> <list>
1 186 <chr [1]>
2 140 <chr [1]>
3 205 <chr [1]>
4 30 <chr [6]>
5 74 <chr [2]>
6 190 <chr [1]>
7 27 <chr [2]>
zed视图显示以下内容:
您会看到 mydf 中的 hashtags 列属于列表类型,并且每一行都是字符串向量。我想返回此数据框的过滤后的版本,仅保留其中包含“土豆”的行(第1、4和7行)。我已经尝试过了:
# whoops had this backwards - fixed now
mydf %>% dplyr::filter("Potato" %in% hashtags)
但是这不起作用。对此的任何帮助都是超级感谢,因为我必须在代码中的几个地方进行此操作。
答案 0 :(得分:3)
DBCPService dbcpService = context.getProperty(DB_CONNECTION_POOL).asControllerService(DBCPService.class);
Connection con = dbcpService.getConnection();
不检查嵌套成员资格;您需要遍历该列并创建一个布尔向量进行过滤:
%in%
或为mydf %>% filter(sapply(hashtags, function(v) 'Potato' %in% v))
# A tibble: 3 x 2
# retweet_count hashtags
# <int> <list>
#1 186 <chr [1]>
#2 30 <chr [6]>
#3 27 <chr [2]>
使用purrr::map_lgl
:
sapply