我有两个数据框.我正在try 将它们合并/联接在一起,同时指定我希望行如何对齐.模拟下面的数据.

df <- data.frame(Race = c("White", "NHPI", "AA"),
                 Cases = c(20, 4, 7)
                 )
df
> df
   Race Cases
1 White    20
2  NHPI     4
3    AA     7

df2 <- data.frame(Race2 = c("African American", "White", "Hawaiian or Pacific Islander"),
                  TotalPopulation = c(200, 400, 50))
df2
> df2
                         Race2 TotalPopulation
1             African American             200
2                        White             400
3 Hawaiian or Pacific Islander              50

我想要做的是合并数据,同时指定哪些行与另一个数据集匹配-例如,我希望合并将"African American"和"AA"对齐.理想的输出应该是这样的--

   Race Cases                        Race2 TotalPopulation
1    AA     7             African American             200
2 White    20                        White             400
3  NHPI     4 Hawaiian or Pacific Islander              50

我是编程的新手,所以如果你能浏览一下代码,那就太好了.非常感谢.

推荐答案

基于@M--Comment,您可以这样做:

df %>%
  left_join(df2 %>% 
               mutate(Race = case_when(
                 Race2 == "African American" ~ "AA",
                 Race2 == "Hawaiian or Pacific Islander" ~ "NHPI",
                 .default = Race2
               )))

   Race Cases                        Race2 TotalPopulation
1 White    20                        White             400
2  NHPI     4 Hawaiian or Pacific Islander              50
3    AA     7             African American             200

如果你可以设置全名,然后提取缩写,你可以更快地做到这一点,然而,请注意,你有NHPIHawaiian or Pacific Islander,但没有匹配.如果您可以在Hawaiian or Pacific Islander中包含N,则可以使用:

df %>% 
  left_join(df2 %>% 
              mutate(Race = gsub("[:a-z:]*\\s*", "", Race2),
                     Race = sub("W", "White", Race)))

在df2假设下的这项工作如下:

df2 <- data.frame(Race2 = c("African American", "White", "Naaaa Hawaiian or Pacific Islander"),
                  TotalPopulation = c(200, 400, 50))

R相关问答推荐

变量计算按R中的行更改

如何替换R中数据集列中的各种字符串

列出用m n个值替换来绘制n个数字的所有方法(i.o.w.:R中大小为n的集合的所有划分为m个不同子集)

使用R的序列覆盖

如何使用`ggplot2::geom_segment()`或`ggspatial::geom_spatial_segment()`来处理不在格林威治中心的sf对象?

如何得到R中唯一的组合群?

bslib::card_header中的shine::downloadButton,图标而不是文本

是否可以创建一个ggplot与整洁判断的交互作用

删除具有相同标题的tabPanel(shinly)

如何在ggplot图中找到第二轴的比例

移除仪表板Quarto中顶盖和车身之间的白色区域

如何在观测缺失的地方添加零

为什么在BASE R中绘制线条时会看到线上的点?

R如何计算现有行的总和以添加新的数据行

如何根据R中其他变量的类别汇总值?

为什么在写入CSV文件时Purrr::Pwalk不起作用

有没有办法更改ggplot2中第二个y轴的比例限制?

如何在矩阵图中按标准对数据进行分组以绘制矩阵

了解nchar在列表上的意外行为

带查找数据的FCT_REORDER.帧