我有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