小编Vit*_*nko的帖子

使用非空列的名称创建新列

我的数据集如下所示:

library(data.table)

df <- data.table(a = c(1,2,3,4,5),
                 b = c(1,0,2,5,1),
                 c = c(0,1,1,0,0),
                 d = c(1,0,0,2,2))

df
#    a b c d
# 1: 1 1 0 1
# 2: 2 0 1 0
# 3: 3 2 1 0
# 4: 4 5 0 2
# 5: 5 1 0 2
Run Code Online (Sandbox Code Playgroud)

我想创建一个具有非空列名称的新列.结果将是:

df_result <- data.table(a = c(1,2,3,4,5),
                        z = c('b_d', 'c', 'b_c', 'b_d', 'b_d'))

df_result
#    a   z
# 1: 1 b_d
# 2: 2   c
# 3: 3 …
Run Code Online (Sandbox Code Playgroud)

r data.table

6
推荐指数
3
解决办法
267
查看次数

将组中的负值之前的所有行子集

我有data.table

X = data.table(x = c(1,1,1,1,1,2,2,2,2,2), y = c(3,2,1,-1,5,7,4,-2,3,5))
Run Code Online (Sandbox Code Playgroud)

我想仅在一个组中对仅在负值之上的行进行子集化:

res = data.table(x = c(1,1,1,2,2), y = c(3,2,1,7,4)
Run Code Online (Sandbox Code Playgroud)

从第一组中的五个值开始,我想只获得前三个,因为第四个是负数,而第二个组是相同的.

r data.table

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

在data.table中枚举group by语句中的元素

我有这个表 df <- data.table(x = c('a','a','a','a','b','b','b','b'), y = c(4,5,6,3,2,2,6,5)) 并且想要枚举组中的元素(x变量).

结果,我想得到 df <- data.table(x = c('a','a','a','a','b','b','b','b'), y = c(4,5,6,3,2,2,6,5), z = c(1,2,3,4,1,2,3,4))

r data.table

0
推荐指数
1
解决办法
485
查看次数

标签 统计

data.table ×3

r ×3