首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从1列中获取另一列的值

从1列中获取另一列的值
EN

Stack Overflow用户
提问于 2022-01-26 05:18:47
回答 1查看 30关注 0票数 0

我有2个df。

df_tailnum,一个独特尾矿的列表

代码语言:javascript
复制
   TailNum
   <chr>  
 1 N657AW 
 2 N834AW 
 3 N605AW 
 4 N312AW 
 5 N309AW 
 6 N733UW 
 7 N177UW 
 8 N404US 
 9 N722UW 
10 N104UW

和df_planes,上面有尾翼的名字

代码语言:javascript
复制
  tailnum type   manufacturer  issue_date model status aircraft_type engine_type year 
  <chr>   <chr>  <chr>         <chr>      <chr> <chr>  <chr>         <chr>       <chr>
1 N997AT  Corpo… BOEING        01/02/2003 717-… Valid  Fixed Wing M… Turbo-Fan   2002 
2 N997DL  Corpo… MCDONNELL DO… 03/11/1992 MD-88 Valid  Fixed Wing M… Turbo-Fan   1992 
3 N998AT  Corpo… BOEING        01/23/2003 717-… Valid  Fixed Wing M… Turbo-Fan   2002 
4 N998DL  Corpo… MCDONNELL DO… 04/02/1992 MD-88 Valid  Fixed Wing M… Turbo-Jet   1992 
5 N999CA  Forei… CANADAIR      07/09/2008 CL-6… Valid  Fixed Wing M… Turbo-Jet   1998 
6 N999DN  Corpo… MCDONNELL DO… 04/02/1992 MD-88 Valid  Fixed Wing M… Turbo-Jet   1992 

我想知道如何在df_planes中将df_tailnum列中的值作为相应尾尾的新列基础来增加值?

就像这样:

代码语言:javascript
复制
   TailNum Year
   <chr>  
 1 N657AW 
 2 N834AW 
 3 N605AW 
 4 N312AW 
 5 N309AW 
 6 N733UW 
 7 N177UW 
 8 N404US 
 9 N722UW 
10 N104UW 

我试过了

代码语言:javascript
复制
df_tailnum <- df_planes %>%
  if_else(df_planes$tailnum == df_tailnum$TailNum,select(df_planes$year))
  mutate()

但我意识到这没什么意义。

请帮帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-26 05:26:37

  1. if_else是一个基于向量的函数,不是一次处理整个数据的动词.充其量,它应该在mutatesummarize调用中,而不是单独调用。(这部分是因为%>%将一个data.frame转储到其第一个参数中。)

  1. (几乎)从不在dplyr管道中使用df_planes$ .

  1. --这是一种称为“合并”或“连接”的高级操作。这是一个很好的了解,但如果您刚刚开始使用data.frames和R(而不是SQL或类似的),那么它可能是一个很大的问题。关于它是如何工作的(无论是在R中还是在一般情况下),请参见How to join (merge) data frames (inner, outer, left, right)What's the difference between INNER JOIN, LEFT JOIN, RIGHT JOIN and FULL JOIN?

试试看:

德普利

代码语言:javascript
复制
library(dplyr)
left_join(df_tailnum, df_planes, by = c(TailNum = "tailnum"))
#    TailNum type manufacturer issue_date model status aircraft_type engine_type year
# 1   N657AW <NA>         <NA>       <NA>  <NA>   <NA>          <NA>        <NA>   NA
# 2   N834AW <NA>         <NA>       <NA>  <NA>   <NA>          <NA>        <NA>   NA
### ...

left_join(df_tailnum, select(df_planes, tailnum, year), by = c(TailNum = "tailnum"))
#    TailNum year
# 1   N657AW   NA
# 2   N834AW   NA
# 3   N605AW   NA
### ...

由于您的示例数据在它们之间没有任何共同之处,所以什么也找不到,但是该方法是健全的。

基R

代码语言:javascript
复制
merge(df_tailnum, df_planes, by.x = "TailNum", by.y = "tailnum", all.x = TRUE)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70858937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档