我有2个df。
df_tailnum,一个独特尾矿的列表
TailNum
<chr>
1 N657AW
2 N834AW
3 N605AW
4 N312AW
5 N309AW
6 N733UW
7 N177UW
8 N404US
9 N722UW
10 N104UW和df_planes,上面有尾翼的名字
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列中的值作为相应尾尾的新列基础来增加值?
就像这样:
TailNum Year
<chr>
1 N657AW
2 N834AW
3 N605AW
4 N312AW
5 N309AW
6 N733UW
7 N177UW
8 N404US
9 N722UW
10 N104UW 我试过了
df_tailnum <- df_planes %>%
if_else(df_planes$tailnum == df_tailnum$TailNum,select(df_planes$year))
mutate()但我意识到这没什么意义。
请帮帮忙。
发布于 2022-01-26 05:26:37
if_else是一个基于向量的函数,不是一次处理整个数据的动词.充其量,它应该在mutate或summarize调用中,而不是单独调用。(这部分是因为%>%将一个data.frame转储到其第一个参数中。)。
df_planes$ .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?。试试看:
德普利
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
merge(df_tailnum, df_planes, by.x = "TailNum", by.y = "tailnum", all.x = TRUE)https://stackoverflow.com/questions/70858937
复制相似问题