gpt4 book ai didi

r - Data.table:组合列(聚合的个别功能)

转载 作者:行者123 更新时间:2023-12-01 13:35:48 25 4
gpt4 key购买 nike

我有一些类似的数据

foo <- data.table(uid=c("a","b", "c"), var1=c(T, F, F), var2=c(F, T, F))

我想融化(var1, var2)进入var3 ,使用使用以下聚合的函数:

  • w IF var1 == T & var2 == T (否则:)
  • x IF var1 == T
  • y IF var2 == T
  • z IF var1 == F & var2 == F

也就是说,给定我的 foo ,预期结果为

uid var3
a x
b y
c z

此外,foo 的任何附加列除了(var1, var2)应该接管到新的data.table

最佳答案

另一种方式是:

foo1 <- CJ(var1 = c(T,F), var2 = c(T,F))[, var3 := c('z', 'y', 'x', 'w')]
setkey(foo, var1, var2)

foo[foo1, var3 :=i.var3][order(uid)][, c(1L, 4L)]
# uid var3
#1: a x
#2: b y
#3: c z

关于r - Data.table:组合列(聚合的个别功能),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25041581/

25 4 0