小编Sam*_*Sam的帖子

R data.table列名在函数内不起作用

我试图在函数中使用data.table,我试图理解为什么我的代码失败.我有一个data.table如下:

DT <- data.table(my_name=c("A","B","C","D","E","F"),my_id=c(2,2,3,3,4,4))
> DT
   my_name my_id
1:       A     2
2:       B     2
3:       C     3
4:       D     3
5:       E     4
6:       F     4
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用不同的"my_id"值创建所有"my_name"对,对于DT,它将是:

Var1 Var2    
A    C
A    D
A    E
A    F
B    C
B    D
B    E
B    F
C    E
C    F
D    E
D    F
Run Code Online (Sandbox Code Playgroud)

我有一个函数来返回"my_id"的所有对"my_name",这对值"my_id"按预期工作.

get_pairs <- function(id1,id2,tdt) {
    return(expand.grid(tdt[my_id==id1,my_name],tdt[my_id==id2,my_name]))
}
> get_pairs(2,3,DT)
Var1 Var2
1    A    C
2    B    C
3    A    D
4    B    D
Run Code Online (Sandbox Code Playgroud)

现在,我想对所有id对执行此函数,我尝试通过查找所有id对然后使用mapply和get_pairs函数来执行此操作.

> combn(unique(DT$my_id),2)
     [,1] …
Run Code Online (Sandbox Code Playgroud)

r mapply data.table

8
推荐指数
1
解决办法
1302
查看次数

标签 统计

data.table ×1

mapply ×1

r ×1