我是dplyr软件包的新手,并尝试对两个数据帧进行apply(dataframe, 2, max)
操作。
数据如下
join
现在,当我运行> overview
Source: local data frame [972 x 14]
household names x2003 x2004 x2005 x2006 x2007 x2008 x2009 x2012 last.avail last.avail.year absChange.last annChange.last
(chr) (fctr) (int) (int) (int) (int) (int) (int) (int) (int) (int) (dbl) (int) (dbl)
1 single parent totala utgifterna 215300 219870 241920 241060 229290 253590 255950 277260 277260 2012 61960 0.02850119
2 single parent köpta livsmedel 26420 27910 28160 29100 28310 33020 35910 33740 33740 2012 7320 0.02754621
3 single parent bröd, spannmålsprodukter 4760 5770 4940 5360 5070 5830 6310 NA 6310 2009 1550 0.04810245
4 single parent ris och produkter av ris 240 290 210 230 220 280 420 NA 420 2009 180 0.09775732
5 single parent ris 100 70 70 130 110 180 200 NA 200 2009 100 0.12246205
6 single parent risprodukter 140 220 130 100 120 100 220 NA 220 2009 80 0.07824083
7 single parent pasta och produkter av pasta 410 450 370 460 580 490 600 NA 600 2009 190 0.06551908
> translation
Source: local data frame [8 x 2]
translation household
(fctr) (fctr)
1 Accomodation bostad
2 Leisure and culture fritid och kultur
3 Transportation transport
4 Bought Groceries köpta livsmedel
5 Rent for accomodation hyra/avgift för hyres-/borätt (inkl garage)
6 Household services hushållstjänster
7 Rents (net) räntor (brutto)
8 Car expenses drift av bil
时,我得到以下结果。
left_join(overview, translation)
如您所见,所有翻译均为NA值。例如,索引编号> left_join(overview, translation)
Joining by: "household"
Source: local data frame [972 x 15]
household names x2003 x2004 x2005 x2006 x2007 x2008 x2009 x2012 last.avail last.avail.year absChange.last annChange.last translation
(chr) (fctr) (int) (int) (int) (int) (int) (int) (int) (int) (int) (dbl) (int) (dbl) (fctr)
1 single parent totala utgifterna 215300 219870 241920 241060 229290 253590 255950 277260 277260 2012 61960 0.02850119 NA
2 single parent köpta livsmedel 26420 27910 28160 29100 28310 33020 35910 33740 33740 2012 7320 0.02754621 NA
3 single parent bröd, spannmålsprodukter 4760 5770 4940 5360 5070 5830 6310 NA 6310 2009 1550 0.04810245 NA
4 single parent ris och produkter av ris 240 290 210 230 220 280 420 NA 420 2009 180 0.09775732 NA
5 single parent ris 100 70 70 130 110 180 200 NA 200 2009 100 0.12246205 NA
6 single parent risprodukter 140 220 130 100 120 100 220 NA 220 2009 80 0.07824083 NA
翻译应该等于“买了杂货”,但事实并非如此。
发生了什么以及如何解决这个问题?
答案 0 :(得分:1)
看起来household
中的translation
列实际上应该被称为names
,因此它将与overview
中的相应列具有相同的名称。您当前的代码是通过每个数据框中的household
列加入的,但这些代码没有相应的值,因此您不会在两个数据框之间获得任何匹配。
您可以通过明确指定连接列来使代码以当前形式运行:
left_join(overview, translation, by=c("names"="household"))
在这种情况下,最好修复列名以避免两个数据帧之间的混淆。不过,我喜欢明确指定连接列,以便我可以准确地看到代码正在做什么。