【发布时间】:2021-10-09 23:11:13
【问题描述】:
data <- tibble(time = c(1,1,2,2), a = c(1,2,3,4), b =c(4,3,2,1), c = c(1,1,1,1))
结果将如下所示
result <- tibble(
t = c(1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2),
firm1 = c("a","a","a","b","b","b","c","c","c","a","a","a","b","b","b","c","c","c"),
firm2 = c("a","b","c","a","b","c","a","b","c","a","b","c","a","b","c","a","b","c"),
value = c(6,10,5,10,14,9,5,9,4,14,10,9,10,6,5,9,5,4))
result
函数可以是
function(x, y){sum(x, y)}
基本上,我正在寻找一个整洁的解决方案来扩展每个时间点的网格数据并跨列应用函数。任何人都可以帮忙吗? 我试过这个,但我没有时间在这对人面前。
expected_result<-expand.grid(names(data[-1]), names(data[-1])) %>%
mutate(value = map2(Var1, Var2, ~ fun1(data[.x], data[.y])))
expected_result
【问题讨论】: