R 如何左键连接两个数据集,但只从其中一个数据集中选择特定列?

R 如何左键连接两个数据集,但只从其中一个数据集中选择特定列?,r,select,dplyr,left-join,tidyverse,R,Select,Dplyr,Left Join,Tidyverse,这里有两个数据集:这是假的数据 图书馆管理员 我的水果信息 一个tibble:4x6 水果名称颜色批号类型重量年龄天数 1苹果红4春晚10 20 2梨绿4会议11 22 3香蕉黄4卡文迪什12 24 4樱桃d.红4 bing 13 16 我想使用dplyr::left_join函数将myfruit和fruit_info组合在一起,但我只需要fruit_info中的batch_number和type列 我知道我能做到: 新水果% 选择水果名称、编号、批号、类型 或 新水果% 选择颜色、重量、年龄和

这里有两个数据集:这是假的数据

图书馆管理员 我的水果信息 一个tibble:4x6 水果名称颜色批号类型重量年龄天数 1苹果红4春晚10 20 2梨绿4会议11 22 3香蕉黄4卡文迪什12 24 4樱桃d.红4 bing 13 16 我想使用dplyr::left_join函数将myfruit和fruit_info组合在一起,但我只需要fruit_info中的batch_number和type列

我知道我能做到:

新水果% 选择水果名称、编号、批号、类型 或 新水果% 选择颜色、重量、年龄和天数 但是,如果我在fruit_info中有更多的列,并且我必须在select函数中输入许多列名,这将非常耗时。那么,有没有更有效的方法

编辑:

我在网上看到过这样的例子:

新建水果%s选择批次号、类型、, by=水果名 但我得到一个错误,它说:

错误:数据中必须存在联接列。 “水果名”的x问题。 有人知道我做错了什么吗

如果有任何帮助,我将不胜感激:

试试这个。您可以将select与contains结合使用,并在最后一个函数中添加要提取的标记,因此无需单独或按列号设置每个名称。代码如下:

library(dplyr)
#Code
newdf <- left_join(myfruit, fruit_info, by = "fruit_name") %>%
  select(contains(c('fruit','number','type')))
输出:

# A tibble: 4 x 4
  fruit_name number batch_number type      
  <chr>       <dbl>        <dbl> <chr>     
1 apple           2            4 gala      
2 pear            4            4 conference
3 banana          6            4 cavendish 
4 cherry          8            4 bing      
这是否有效:

> myfruit %>% left_join(
+   fruit_info %>% select(1,3,4)
+ )
Joining, by = "fruit_name"
# A tibble: 4 x 4
  fruit_name number batch_number type      
  <chr>       <dbl>        <dbl> <chr>     
1 apple           2            4 gala      
2 pear            4            4 conference
3 banana          6            4 cavendish 
4 cherry          8            4 bing      
> 

谢谢,这很有效:但是你知道我做错了什么吗:new_myfruits%selectbatch_number,type,by=fruit_name@Karima嗨,Kari,尝试在连接外部设置选择!让我知道这是否有效@Karima或试试这个左键,我的水果,水果信息%>%selectcontainsc'fruit','number','type',by=fruit_name@Karima太棒了,这也是一个很好的问题+1谢谢你的回答:这是一个很好的方法,但不是我想要的