首页 > 解决方案 > 将数据框中的多列与外部向量进行比较

问题描述

假设我们有这个向量:

products <- c(a, b, d, f, g, h, i, j, m, o, t, z)

还有一个像下面这样的数据框:

seller_a seller_b seller_c
a        b        d
d        d        e
g        g        g
h        l        h
t        n        t
z        y        w

我想在数据框中包含一个额外的行,这将表明每seller列与products向量匹配的扩展。

换句话说,我的目标是让原始数据框看起来像这样:

seller_a seller_b seller_c
6        3        4
a        b        d
d        d        e
g        g        g
h        l        h
t        n        t
z        y        w

标签: rdplyrdata-wranglingjanitor

解决方案


您还可以使用add_rowfrom 函数tibble向数据集添加额外的行:

library(dplyr)

df %>%
  add_row(seller_a = as.character(sum(df$seller_a %in% products)),
          seller_b = as.character(sum(df$seller_b %in% products)),
          seller_c = as.character(sum(df$seller_c %in% products)),
          .before = 1)

# A tibble: 7 x 3
  seller_a seller_b seller_c
  <chr>    <chr>    <chr>   
1 6        3        4       
2 a        b        d       
3 d        d        e       
4 g        g        g       
5 h        l        h       
6 t        n        t       
7 z        y        w 

推荐阅读