R Sum多列和创建表的唯一值的值

时间:2018-02-08 09:03:52

标签: r dataframe sum

我有一个像这样的数据框:

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))

有什么想法吗?

1 个答案:

答案 0 :(得分:-1)

reshape2的可能解决方案:

reshape2::dcast(dat1, name + adress ~ product, sum, value.var = "val")