我有一个像这样的数据框:
dat1 = data.frame("name" = c("Peter", "Tom", "Peter", "Peter", "Tom", "Tom"), "adress" = c("str1", "str2", "str1", "str2", "str3", "str3"), "product" = c("prod1", "prod1", "prod2", "prod3", "prod2", "prod2"), "val" = c(1,2,3,4,5,5))
现在我想创建一个新的数据框,其中包含“name”,“adress”列以及“product”的所有唯一值。 “product”类型的列中的值应为“val”的总和。 这是所需的输出:
result = data.frame("name" = c("Peter", "Tom", "Peter", "Tom"), "adress" = c("str1", "str2", "str2", "str3"), "prod1" = c(1,NA,NA,NA), "prod2" = c(3,NA,NA,10), "prod3" = c(NA,NA,4,NA))
有什么想法吗?
答案 0 :(得分:-1)
包reshape2
的可能解决方案:
reshape2::dcast(dat1, name + adress ~ product, sum, value.var = "val")