小编Ron*_*ich的帖子

在dplyr mutate()中返回一个列表

我在我的现实问题中有一个返回列表的函数.有没有办法在dplyr mutate()中使用它?这个玩具示例不起作用 - :

it = data.table(c("a","a","b","b","c"),c(1,2,3,4,5), c(2,3,4,2,2))

myfun = function(arg1,arg2) {

temp1 = arg1 + arg2
temp2 = arg1 - arg2
list(temp1,temp2)

}

myfun(1,2)

it%.%mutate(new = myfun(V2,V3))
Run Code Online (Sandbox Code Playgroud)

我看到,它是通过在第一"列"函数的输出循环的新变量,但不明白为什么.

谢谢!

r dplyr data.table

13
推荐指数
1
解决办法
5071
查看次数

在一次通话中使用.N和.SD

假设我有一个data.table如下 - :

data = data.table(c("a","a","b","b","c"),c(1,2,3,4,5))
Run Code Online (Sandbox Code Playgroud)

我想总结数值向量,只有当因子向量有多个条目时.我遇到的问题需要使用.SD.我知道我可以创建一个N场

data[ , N := .N, by = V1]
Run Code Online (Sandbox Code Playgroud)

然后总结

data[N > 1, lapply(.SD,sum), by = V1, .SDcols = 2]
Run Code Online (Sandbox Code Playgroud)

但是,有一个步骤要求这样做吗?

在通话中引用.SD不会返回答案 -

data[, lapply(.SD[which(length(.SD)>1)],sum), by = V1, .SDcols = 2] 
Run Code Online (Sandbox Code Playgroud)

我想明白为什么这不起作用.也不 -

data[, lapply(.SD[which(.N>1)],sum), by = V1, .SDcols = 2]
Run Code Online (Sandbox Code Playgroud)

谢谢!

r data.table

4
推荐指数
1
解决办法
464
查看次数

标签 统计

data.table ×2

r ×2

dplyr ×1