【发布时间】:2021-05-22 15:10:18
【问题描述】:
我希望创建一个新的 data.table,其中包含至少一个负值的所有行。
这是一个简单的可重现数据表:
dt <- data.table(
ID = c(42, 43, 44),
Stage_1 = c(-6, 7, 4),
Stage_2 = c(-15, 4, -8),
Stage_3 = c(-20, 2, -5)
)
# ID Stage_1 Stage_2 Stage_3
# 1: 42 -6 -15 -20 # <~~ row to be selected (> 0 negative values)
# 2: 43 7 4 2
# 3: 44 4 -8 -5 # <~~ row to be selected (> 0 negative values)
我想要的输出是:
dt2 <- data.table(
ID = c(42, 44),
Stage_1 = c(-6, 4),
Stage_2 = c(-15, -8),
Stage_3 = c(-20, -5)
)
# ID Stage_1 Stage_2 Stage_3
# 1: 42 -6 -15 -20
# 2: 44 4 -8 -5
例如,ID 44 有两个负值,但我想包括主数据表中的所有行。基本上,我想将所有列中 any 中具有负值的所有行添加到包含其所有信息的新数据表中。
我正在使用的实际数据集有大约 50 个阶段列,因此最有效的解决方案就是我所追求的。
【问题讨论】:
标签: r data.table subset data-manipulation