【发布时间】:2015-10-22 21:24:01
【问题描述】:
我有一个我正在清理的数据集,并且有一些我想合并的行(观察)。解释我正在尝试做的最好方法是使用以下示例:
df<-data.frame(fruits=c("banana","banana","pineapple","kiwi"),cost=c(1,NA,2,3),weight=c(NA,1,2,3),stringsAsFactors = F)
df
cost<-df[,1:2]
weight<-df[,c(1,3)]
cost
weight
cost<-cost[complete.cases(cost),]
weight<-weight[complete.cases(weight),]
key<-data.frame(fruits=unique(df[,1]))
key
mydata<-merge(key,cost,by="fruits",all.x = T)
mydata<-merge(mydata,weight,by="fruits",all.x = T)
mydata
在前面的示例中,我想保留香蕉的两个变量(成本和重量)的信息,但不幸的是它在不同的记录中。我可以为一个变量手动完成此操作,但我的实际数据集有几十个变量。我想知道如何完成上面完成的任务,但使用 dplyr 或应用于一组列。
【问题讨论】:
-
这个问题需要更多数据——我们可以假设每个项目的成本总是相同的吗?我们可以假设成本和重量总是相同的吗?您的原始数据看起来像 df 还是像成本和重量?
-
在这里看到你在做什么真的很麻烦,因为你坚持要覆盖你创建的每一个对象。
标签: r dplyr split-apply-combine