簡體   English   中英

如何解決我使用 inner_join function 時遇到的這個錯誤?

[英]How can I fix this error that I'm getting using the inner_join function?

vg1<-rev_vg[,c(4,6,11)]

df2006<-vg1%>%
  filter(Year==2006)%>%
  rename(Sales2006=Global_Sales)

View(df2006)

df2016<-vg1%>%
  filter(Year==2016)%>%
  rename(Sales2016=Global_Sales)

View(df2016)

merged_df<-vg1%>%
  inner_join(vg2,by="Publisher")

錯誤by不能包含 RHS 中缺少的連接列Publisher

不太確定如何修復此錯誤以合並這些數據幀。

PS 我正在使用一個名為“視頻游戲銷售”的數據集。 它的版本可以在 Kaggle 上找到,盡管它們可能與我正在使用的集合不同。

如果您閱讀錯誤,答案很明顯,在您的一個數據框中沒有名為“Publisher”的變量。 變量 in by需要出現在兩個幀中,或者您可以使用by = c(x, y)傳遞兩個不同的名稱。

參見: https://dplyr.tidyverse.org/reference/join.html


您說vg1vg2都具有發布者變量,並且該變量具有相同的名稱,但我們可以使用數據幀上的str()的 output 來支持這一點。 對於它的價值,以下內容完全重復了您的錯誤

library(tidyverse)

vg1 <- data.frame(
  Publisher = c("A", "B", "B", "C", "D", "D", "D"), 
  Game = c(1:7))

vg2 <- data.frame(
  Pub = LETTERS[1:4],
  Year = c(2004, 2005, 2007, 2002))

vg1 %>% 
  inner_join(vg2, by = "Publisher")

雖然這工作正常

library(tidyverse)

vg1 <- data.frame(
  Publisher = c("A", "B", "B", "C", "D", "D", "D"), 
  Game = c(1:7))

vg2 <- data.frame(
  Publisher = LETTERS[1:4],
  Year = c(2004, 2005, 2007, 2002))

vg1 %>% 
  inner_join(vg2, by = "Publisher")

請注意, vg1 %>% inner_join(vg2, by = c("Publisher" = "Pub"))也會起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM