我有2個數據幀,第一列是一個列表(df A),另一列的第一列包含列表中的項目,但在某些情況下每行有多個項目(df B)。 我想要做的就是去通過,並從一個DF每個項目創建新行什麼,發生在DF B的第一列根據另一個數據幀中的列創建新的數據幀行
DF一
dfA
Index X
1 1 alpha
2 2 beta
3 3 gamma
4 4 delta
DF乙
dfB
list X
1 1 4 alpha
2 3 2 1 beta
3 4 1 2 gamma
4 3 delta
期望
dfC
Index x
1 1 alpha
2 4 alpha
3 3 beta
4 2 beta
5 1 beta
6 4 gamma
7 1 gamma
8 2 gamma
9 3 delta
我使用的實際數據: DF一
dput(head(allwines))
structure(list(Wine = c("Albariño", "Aligoté", "Amarone", "Arneis",
"Asti Spumante", "Auslese"), Description = c("Spanish white wine grape that makes crisp, refreshing, and light-bodied wines.",
"White wine grape grown in Burgundy making medium-bodied, crisp, dry wines with spicy character.",
"From Italy’s Veneto Region a strong, dry, long- lived red, made from a blend of partially dried red grapes.",
"A light-bodied dry wine the Piedmont Region of Italy", "From the Piedmont Region of Italy, A semidry sparkling wine produced from the Moscato di Canelli grape in the village of Asti",
"German white wine from grapes that are very ripe and thus high in sugar"
)), .Names = c("Wine", "Description"), row.names = c(NA, 6L), class = "data.frame")
DF乙
> dput(head(cheesePairing))
structure(list(Wine = c("Cabernet Sauvignon\r\n \r\n \r\n \r\n \r\n \r\n Pinot Noir\r\n \r\n \r\n \r\n \r\n \r\n Sauvignon Blanc\r\n \r\n \r\n \r\n \r\n \r\n Zinfandel",
"Chianti\r\n \r\n \r\n \r\n \r\n \r\n Pinot Noir\r\n \r\n \r\n \r\n \r\n \r\n Sangiovese",
"Chardonnay", "Bardolino\r\n \r\n \r\n \r\n \r\n \r\n Malbec\r\n \r\n \r\n \r\n \r\n \r\n Riesling\r\n \r\n \r\n \r\n \r\n \r\n Rioja\r\n \r\n \r\n \r\n \r\n \r\n Sauvignon Blanc",
"Tempranillo", "Asti Spumante"), Cheese = c("Abbaye De Belloc Cheese",
"Ardrahan cheese", "Asadero cheese", "Asiago cheese", "Azeitao",
"Baby Swiss Cheese"), Suggestions = c("Pair with apples, sliced pears OR a sampling of olives and thin sliced salami. Pass around slices of baguette.",
"Serve with a substantial wheat cracker and apples or grapes.",
"Rajas (blistered chile strips) fresh corn tortillas", "Table water crackers, raw nuts (almond, walnuts)",
"Nutty brown bread, grapes", "Server with dried fruits, whole grain, nutty breads, nuts"
)), .Names = c("Wine", "Cheese", "Suggestions"), row.names = c(NA,
6L), class = "data.frame")
如果您可以編輯您的問題以將您的示例數據包含在R可解析格式中將會很有幫助。例如。 'dput(dfA)'和'dput(dfB)'。 –
@CurtF。我添加了我的示例數據,我擔心它可能太混亂了,所以我刪除了它並將其編入示例。 –
我不確定'DFA'的用途是什麼。 'DFB'中的葡萄酒中有一些額外的空格,所以你可以將它們替換爲逗號'cheesePairing $ Wine < - gsub('\\ s {2,}',',',df $ Wine)'現在使用[這個問題](http://stackoverflow.com/questions/28285169/split-comma-separated-column-entry-into-rows)或其他類似的答案之一 – rawr