【发布时间】:2015-02-03 20:48:00
【问题描述】:
简单整形,我有以下数据:
df<-data.frame(Product=c("A","A","A","B","B","C"), Ingredients=c("Chocolate","Vanilla","Berry","Chocolate","Berry2","Vanilla"))
df
Product Ingredients
1 A Chocolate
2 A Vanilla
3 A Berry
4 B Chocolate
5 B Berry2
6 C Vanilla
我想为“成分”的每个唯一值设置一列,例如:
df2
Product Ingredient_1 Ingredient_2 Ingredient_3
A Chocolate Vanilla Berry
B Chocolate Berry2 NULL
C Vanilla NULL NULL
似乎微不足道,我尝试重塑但我不断得到计数(不是“成分”的实际值)。想法?
【问题讨论】:
-
显示您尝试过但不起作用的代码。您基本上是将数据从“长”格式重塑为“宽”格式。关于这个话题已经有很多很多问题了。您确定在发布新问题之前彻底搜索了现有答案吗?
-
我试过:dcast(df, Product ~ Ingredients, value.var = "Ingredients"),但它为每个产品创建了一个列
-
@MrFlick 这个问题有什么不清楚的地方? OP 说他们尝试了
reshape,但没有成功。并且很清楚为什么-因为这不是一个简单的重塑问题。如果你能找到一个骗子,请关闭问题。如果没有,为什么 OP 能够做到? -
@DavidArenburg 主要是因为“我尝试重塑”非常不清楚。如果您遇到代码问题,请显示您尝试过的代码并给出确切的错误。从上面的评论来看,他们似乎没有使用
reshape(),而是使用reshape(可能是reshape2)库。