我一直在嘗試在 R 中執行vlookup函式以及iferror。就像Iferror(vlookup(X,...))一樣,它基本上是檢查另一個資料幀中是否有任何具有相同名稱的值,如果有,它將顯示對應的輸出,并且在沒有的情況下,它將顯示我們可以選擇的任何輸出。
這里我有兩個資料框,第一個在下面給出,命名為(columnheaderdf):
structure(list(V1 = c("XYS", "PYZ", "ABC", "Sales", "2022/38",
"2022/39", "2022/40", "2022/41", "2022/42", "2022/43", "2022/44",
"2022/45", "2022/46", "2022/47", "2022/48", "2022/49", "2022/50",
"2022/51", "2022/52", "2022/53", "2022/54")), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -21L))
第二個如下命名(timedf):
structure(list(`Week Format` = c("2021/01", "2021/02", "2021/03",
"2021/04", "2021/05", "2021/06", "2021/07", "2021/08", "2021/09",
"2021/10", "2021/11", "2021/12", "2021/13", "2021/14", "2021/15",
"2021/16", "2021/17", "2021/18", "2021/19", "2021/20", "2021/21",
"2021/22", "2021/23", "2021/24", "2021/25", "2021/26", "2021/27",
"2021/28", "2021/29", "2021/30", "2021/31", "2021/32", "2021/33",
"2021/34", "2021/35", "2021/36", "2021/37", "2021/38", "2021/39",
"2021/40", "2021/41", "2021/42", "2021/43", "2021/44", "2021/45",
"2021/46", "2021/47", "2021/48", "2021/49", "2021/50", "2021/51",
"2021/52", "2022/01", "2022/02", "2022/03", "2022/04", "2022/05",
"2022/06", "2022/07", "2022/08", "2022/09", "2022/10", "2022/11",
"2022/12", "2022/13", "2022/14", "2022/15", "2022/16", "2022/17",
"2022/18", "2022/19", "2022/20", "2022/21", "2022/22", "2022/23",
"2022/24", "2022/25", "2022/26", "2022/27", "2022/28", "2022/29",
"2022/30", "2022/31", "2022/32", "2022/33", "2022/34", "2022/35",
"2022/36", "2022/37", "2022/38", "2022/39", "2022/40", "2022/41",
"2022/42", "2022/43", "2022/44", "2022/45", "2022/46", "2022/47",
"2022/48", "2022/49", "2022/50", "2022/51", "2022/52", "2023/01",
"2023/02", "2023/03", "2023/04", "2023/05", "2023/06", "2023/07",
"2023/08", "2023/09", "2023/10", "2023/11", "2023/12", "2023/13",
"2023/14", "2023/15", "2023/16", "2023/17", "2023/18", "2023/19",
"2023/20", "2023/21", "2023/22", "2023/23", "2023/24", "2023/25",
"2023/26", "2023/27", "2023/28", "2023/29", "2023/30", "2023/31",
"2023/32", "2023/33", "2023/34", "2023/35", "2023/36", "2023/37",
"2023/38", "2023/39", "2023/40", "2023/41", "2023/42", "2023/43",
"2023/44", "2023/45", "2023/46", "2023/47", "2023/48", "2023/49",
"2023/50", "2023/51", "2023/52"), `Week number` = c("Week 01",
"Week 02", "Week 03", "Week 04", "Week 05", "Week 06", "Week 07",
"Week 08", "Week 09", "Week 10", "Week 11", "Week 12", "Week 13",
"Week 14", "Week 15", "Week 16", "Week 17", "Week 18", "Week 19",
"Week 20", "Week 21", "Week 22", "Week 23", "Week 24", "Week 25",
"Week 26", "Week 27", "Week 28", "Week 29", "Week 30", "Week 31",
"Week 32", "Week 33", "Week 34", "Week 35", "Week 36", "Week 37",
"Week 38", "Week 39", "Week 40", "Week 41", "Week 42", "Week 43",
"Week 44", "Week 45", "Week 46", "Week 47", "Week 48", "Week 49",
"Week 50", "Week 51", "Week 52", "Week 01", "Week 02", "Week 03",
"Week 04", "Week 05", "Week 06", "Week 07", "Week 08", "Week 09",
"Week 10", "Week 11", "Week 12", "Week 13", "Week 14", "Week 15",
"Week 16", "Week 17", "Week 18", "Week 19", "Week 20", "Week 21",
"Week 22", "Week 23", "Week 24", "Week 25", "Week 26", "Week 27",
"Week 28", "Week 29", "Week 30", "Week 31", "Week 32", "Week 33",
"Week 34", "Week 35", "Week 36", "Week 37", "Week 38", "Week 39",
"Week 40", "Week 41", "Week 42", "Week 43", "Week 44", "Week 45",
"Week 46", "Week 47", "Week 48", "Week 49", "Week 50", "Week 51",
"Week 52", "Week 01", "Week 02", "Week 03", "Week 04", "Week 05",
"Week 06", "Week 07", "Week 08", "Week 09", "Week 10", "Week 11",
"Week 12", "Week 13", "Week 14", "Week 15", "Week 16", "Week 17",
"Week 18", "Week 19", "Week 20", "Week 21", "Week 22", "Week 23",
"Week 24", "Week 25", "Week 26", "Week 27", "Week 28", "Week 29",
"Week 30", "Week 31", "Week 32", "Week 33", "Week 34", "Week 35",
"Week 36", "Week 37", "Week 38", "Week 39", "Week 40", "Week 41",
"Week 42", "Week 43", "Week 44", "Week 45", "Week 46", "Week 47",
"Week 48", "Week 49", "Week 50", "Week 51", "Week 52"), `From Date` = structure(c(1609718400,
1610323200, 1610928000, 1611532800, 1612137600, 1612742400, 1613347200,
1613952000, 1614556800, 1615161600, 1615766400, 1616371200, 1616976000,
1617580800, 1618185600, 1618790400, 1619395200, 1.62e 09, 1620604800,
1621209600, 1621814400, 1622419200, 1623024000, 1623628800, 1624233600,
1624838400, 1625443200, 1626048000, 1626652800, 1627257600, 1627862400,
1628467200, 1629072000, 1629676800, 1630281600, 1630886400, 1631491200,
1632096000, 1632700800, 1633305600, 1633910400, 1634515200, 1635120000,
1635724800, 1636329600, 1636934400, 1637539200, 1638144000, 1638748800,
1639353600, 1639958400, 1640563200, 1641168000, 1641772800, 1642377600,
1642982400, 1643587200, 1644192000, 1644796800, 1645401600, 1646006400,
1646611200, 1647216000, 1647820800, 1648425600, 1649030400, 1649635200,
1650240000, 1650844800, 1651449600, 1652054400, 1652659200, 1653264000,
1653868800, 1654473600, 1655078400, 1655683200, 1656288000, 1656892800,
1657497600, 1658102400, 1658707200, 1659312000, 1659916800, 1660521600,
1661126400, 1661731200, 1662336000, 1662940800, 1663545600, 1664150400,
1664755200, 1665360000, 1665964800, 1666569600, 1667174400, 1667779200,
1668384000, 1668988800, 1669593600, 1670198400, 1670803200, 1671408000,
1672012800, 1672617600, 1673222400, 1673827200, 1674432000, 1675036800,
1675641600, 1676246400, 1676851200, 1677456000, 1678060800, 1678665600,
1679270400, 1679875200, 1680480000, 1681084800, 1681689600, 1682294400,
1682899200, 1683504000, 1684108800, 1684713600, 1685318400, 1685923200,
1686528000, 1687132800, 1687737600, 1688342400, 1688947200, 1689552000,
1690156800, 1690761600, 1691366400, 1691971200, 1692576000, 1693180800,
1693785600, 1694390400, 1694995200, 1695600000, 1696204800, 1696809600,
1697414400, 1698019200, 1698624000, 1699228800, 1699833600, 1700438400,
1701043200, 1701648000, 1702252800, 1702857600, 1703462400), class = c("POSIXct",
"POSIXt"), tzone = "UTC"), `To Date` = structure(c(1610236800,
1610841600, 1611446400, 1612051200, 1612656000, 1613260800, 1613865600,
1614470400, 1615075200, 1615680000, 1616284800, 1616889600, 1617494400,
1618099200, 1618704000, 1619308800, 1619913600, 1620518400, 1621123200,
1621728000, 1622332800, 1622937600, 1623542400, 1624147200, 1624752000,
1625356800, 1625961600, 1626566400, 1627171200, 1627776000, 1628380800,
1628985600, 1629590400, 1630195200, 1630800000, 1631404800, 1632009600,
1632614400, 1633219200, 1633824000, 1634428800, 1635033600, 1635638400,
1636243200, 1636848000, 1637452800, 1638057600, 1638662400, 1639267200,
1639872000, 1640476800, 1641168000, 1641686400, 1642291200, 1642896000,
1643500800, 1644105600, 1644710400, 1645315200, 1645920000, 1646524800,
1647129600, 1647734400, 1648339200, 1648944000, 1649548800, 1650153600,
1650758400, 1651363200, 1651968000, 1652572800, 1653177600, 1653782400,
1654387200, 1654992000, 1655596800, 1656201600, 1656806400, 1657411200,
1658016000, 1658620800, 1659225600, 1659830400, 1660435200, 1661040000,
1661644800, 1662249600, 1662854400, 1663459200, 1664064000, 1664668800,
1665273600, 1665878400, 1666483200, 1667088000, 1667692800, 1668297600,
1668902400, 1669507200, 1670112000, 1670716800, 1671321600, 1671926400,
1672531200, 1673136000, 1673740800, 1674345600, 1674950400, 1675555200,
1676160000, 1676764800, 1677369600, 1677974400, 1678579200, 1679184000,
1679788800, 1680393600, 1680998400, 1681603200, 1682208000, 1682812800,
1683417600, 1684022400, 1684627200, 1685232000, 1685836800, 1686441600,
1687046400, 1687651200, 1688256000, 1688860800, 1689465600, 1690070400,
1690675200, 1691280000, 1691884800, 1692489600, 1693094400, 1693699200,
1694304000, 1694908800, 1695513600, 1696118400, 1696723200, 1697328000,
1697932800, 1698537600, 1699142400, 1699747200, 1700352000, 1700956800,
1701561600, 1702166400, 1702771200, 1703376000, 1703980800), class = c("POSIXct",
"POSIXt"), tzone = "UTC"), `Month Date` = c("2021-01-01", "2021-01-01",
"2021-01-01", "2021-01-01", "2021-02-01", "2021-02-01", "2021-02-01",
"2021-02-01", "2021-03-01", "2021-03-01", "2021-03-01", "2021-03-01",
"2021-03-01", "2021-04-01", "2021-04-01", "2021-04-01", "2021-04-01",
"2021-05-01", "2021-05-01", "2021-05-01", "2021-05-01", "2021-05-01",
"2021-06-01", "2021-06-01", "2021-06-01", "2021-06-01", "2021-07-01",
"2021-07-01", "2021-07-01", "2021-07-01", "2021-08-01", "2021-08-01",
"2021-08-01", "2021-08-01", "2021-08-01", "2021-09-01", "2021-09-01",
"2021-09-01", "2021-09-01", "44470", "44470", "44470", "44470",
"44501", "44501", "44501", "44501", "44501", "44531", "44531",
"44531", "44531", "2022-01-01", "2022-01-01", "2022-01-01", "2022-01-01",
"2022-01-01", "2022-02-01", "2022-02-01", "2022-02-01", "2022-02-01",
"2022-03-01", "2022-03-01", "2022-03-01", "2022-03-01", "2022-04-01",
"2022-04-01", "2022-04-01", "2022-04-01", "2022-05-01", "2022-05-01",
"2022-05-01", "2022-05-01", "2022-05-01", "2022-06-01", "2022-06-01",
"2022-06-01", "2022-06-01", "2022-07-01", "2022-07-01", "2022-07-01",
"2022-07-01", "2022-08-01", "2022-08-01", "2022-08-01", "2022-08-01",
"2022-08-01", "2022-09-01", "2022-09-01", "2022-09-01", "2022-09-01",
"2022-10-01", "2022-10-01", "2022-10-01", "2022-10-01", "2022-10-01",
"2022-11-01", "2022-11-01", "2022-11-01", "2022-11-01", "2022-12-01",
"2022-12-01", "2022-12-01", "2022-12-01", "2023-01-01", "2023-01-01",
"2023-01-01", "2023-01-01", "2023-01-01", "2023-02-01", "2023-02-01",
"2023-02-01", "2023-02-01", "2023-03-01", "2023-03-01", "2023-03-01",
"2023-03-01", "2023-04-01", "2023-04-01", "2023-04-01", "2023-04-01",
"2023-05-01", "2023-05-01", "2023-05-01", "2023-05-01", "2023-05-01",
"2023-06-01", "2023-06-01", "2023-06-01", "2023-06-01", "2023-07-01",
"2023-07-01", "2023-07-01", "2023-07-01", "2023-07-01", "2023-08-01",
"2023-08-01", "2023-08-01", "2023-08-01", "2023-09-01", "2023-09-01",
"2023-09-01", "2023-09-01", "2023-10-01", "2023-10-01", "2023-10-01",
"2023-10-01", "2023-10-01", "2023-11-01", "2023-11-01", "2023-11-01",
"2023-11-01", "2023-12-01", "2023-12-01", "2023-12-01", "2023-12-01"
)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA,
-156L))
預期的最終輸出是突出顯示的“最終輸出”列:

我厭倦了使用左連接來做到這一點,但我沒有得到左連接本身,
df2 = left_join(columnheaderdf,timedf,by=c('V1','Week Format'))
錯誤資訊如下所示:

有人可以讓我知道這里有什么問題或任何其他方式來獲得所需的輸出。
uj5u.com熱心網友回復:
結合我們朋友在這里的建議并根據您的期望,
library(dplyr)
newdf <- left_join(columnheaderdf, timedf, by = c('V1' = 'Week Format'))
#Need to convert this into character as dates are tricky to deal with
newdf$`From Date` <- as.character(newdf$`From Date`)
#Assigning the NA columns with the data from the column V1
newdf$`From Date`[is.na(newdf$`From Date`)] <- newdf$V1
希望這會有所幫助,至少它會給你正確執行的想法
uj5u.com熱心網友回復:
您可能在這里使用了錯誤的語法。使用您的
df2 = left_join(columnheaderdf,timedf,by=c('V1','Week Format'))
重現您的錯誤。當你使用這個
df2 = left_join(columnheaderdf, timedf, by = c('V1' = 'Week Format'))
相反,加入有效。
請注意,當您想要加入具有不同名稱的兩列時,您必須指出它們應該是同一列。因此c('V1' = 'Week Format').
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/510801.html
標籤:r数据框加入左连接
下一篇:按供應商計算訂單導致SQL錯誤
