r - 如何left_join()两个数据集,但仅从其中一个数据集中选择特定列?
问题描述
这是两个数据集:(这是假数据)
library(tidyverse)
myfruit <- tibble(fruit_name = c("apple", "pear", "banana", "cherry"),
number = c(2, 4, 6, 8))
fruit_info <- tibble(fruit_name = c("apple", "pear", "banana", "cherry"),
colour = c("red", "green", "yellow", "d.red"),
batch_number = c(4, 4, 4, 4),
type = c("gala", "conference", "cavendish", "bing"),
weight = c(10, 11, 12, 13),
age_days = c(20, 22, 24, 16))
> myfruit
# A tibble: 4 x 2
fruit_name number
<chr> <dbl>
1 apple 2
2 pear 4
3 banana 6
4 cherry 8
> fruit_info
# A tibble: 4 x 6
fruit_name colour batch_number type weight age_days
<chr> <chr> <dbl> <chr> <dbl> <dbl>
1 apple red 4 gala 10 20
2 pear green 4 conference 11 22
3 banana yellow 4 cavendish 12 24
4 cherry d.red 4 bing 13 16
我想使用该dplyr::left_join()
函数来组合在一起myfruit
,fruit_info
但我只想要来自fruit_info
.
我知道我可以这样做:
new_myfruit <- left_join(myfruit, fruit_info, by = "fruit_name") %>%
select(fruit_name, number, batch_number, type)
# OR
new_myfruit <- left_join(myfruit, fruit_info, by = "fruit_name") %>%
select(-colour, -weight, -age_days)
但是如果我有更多的列fruit_info
并且我必须在函数中输入许多列名,select()
那将非常耗时。那么,有没有更有效的方法来做到这一点?
编辑:
我在网上看到了一些例子,你可以这样做:
new_myfruits <- left_join(myfruit,
fruit_info %>% select(batch_number, type),
by = "fruit_name")
但我收到一条错误消息:
# Error: Join columns must be present in data.
# x Problem with `fruit_name`.
有人知道我在做什么错吗?
我将不胜感激任何帮助 :)
解决方案
这是否有效:
> 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
>
推荐阅读
- spring - 用户注销时 Spring Security 从数据库中删除会话
- java - 分析名称在一组名称中的比例。我的输出不正确。("John") 应该返回 0.25。玛丽应该是 0.5
- python - 如何根据字符串名称将向量附加到 numpy 矩阵?
- amazon-web-services - 具有相同 CodeUri 的 AWS 多个 lambda
- java - Java自顶向下合并排序 - Stackoverflow错误
- kubernetes - K8s:添加 env 值后应用 yaml 文件时出错
- c++ - x=10 和 x{10} 有什么区别?
- jquery - jQuery 无法处理 Ajax 加载的 div 内容
- javascript - 在组件中使用 Next.js 动态导入可以吗?
- sorting - 如何在 Google 表格中以相反的顺序填写公式