【发布时间】:2021-06-22 14:01:50
【问题描述】:
我有一个 tibble,只想选择那些至少包含一个与正则表达式匹配的值的列。我花了一段时间才弄清楚如何做到这一点,所以我在这里分享我的解决方案。
我的用例:我只想从像下面这样的小标题中选择那些包含媒体文件名的列。重要的是,我不提前知道 tibble 包含哪些列,以及是否有任何列包含媒体文件名。
| condition | picture | sound | video | description |
|---|---|---|---|---|
| A | cat.png | meow.mp3 | cat.mp4 | A cat |
| A | dog.png | woof.mp3 | dog.mp4 | A dog |
| B | NA | NA | NA | NA |
| B | bird.png | tjirp.mp3 | tjirp.mp4 | A bird |
重现tibble的R代码:
dat = structure(list(condition = c("A", "A", "B", "B"), picture = c("cat.png",
"dog.png", NA, "bird.png"), sound = c("meow.mp3", "woof.mp3",
NA, "tjirp.mp3"), video = c("cat.mp4", "dog.mp4", NA, "tjirp.mp4"
), description = c("A cat", "A dog", NA, "A bird")), row.names = c(NA,
-4L), class = c("tbl_df", "tbl", "data.frame"))
【问题讨论】: