我想检索Distance
列的值介于-50,000和50,000之间的行。
library(data.table)
all.correlated <- setDT(all.correlated)[, .SD[abs(.N) >= 50000], by = Distance]
字符串
回溯:
Empty data.table (0 rows and 7 cols): Distance,Probe,GeneID,Symbol,Sides,Raw.p...
型
输入:
all.correlated <- structure(list(Probe = c("cg24800175", "cg08036309", "cg21411366",
"cg25449950", "cg02155398", "cg03714619"), GeneID = c("ENSG00000179115",
"ENSG00000002549", "ENSG00000002549", "ENSG00000002549", "ENSG00000171132",
"ENSG00000171132"), Symbol = c("FARSA", "LAP3", "LAP3", "LAP3",
"PRKCE", "PRKCE"), Distance = c(-3007, 4041822, -7187580, -7187578,
717992, 718037), Sides = c("L10", "R10", "L9", "L9", "R1", "R1"
), Raw.p = c(3.89552514236314e-08, 5.19302181010518e-08, 5.19302181010518e-08,
5.19302181010518e-08, 1.27186058587196e-07, 1.27186058587196e-07
), FDR = c(3.79438408118467e-06, 3.79438408118467e-06, 3.79438408118467e-06,
3.79438408118467e-06, 3.79438408118467e-06, 3.79438408118467e-06
)), row.names = c(NA, -6L), class = c("data.table", "data.frame"
), .internal.selfref = <pointer: 0x2afcd1808260>)
型
4条答案
按热度按时间i5desfxk1#
tidyverse
方法:字符串
或碱基R:
型
gab6jxml2#
滤波在
data.table
的i
插槽中完成(参见[?
.data.table``),即:字符串
你的代码有几个问题:
型
.N
:返回每组的行数:型
因此,您基本上要求返回所有大于
50000
的 * 绝对计数 *.SD
:来自帮助文件?.SD
:因此,您请求每个组的子集,然后再次进行行绑定,比较
all.correlated[, .SD, by = Distance]
和all_correlated
,您将看到所有更改的是顺序,组列现在位于第一个位置。1.总的来说,你的代码可以翻译成:
1.按
Distance
计数观测值的数量1.返回观测(绝对)数大于
50000
的所有行xcitsw883#
我很难重现你的数据,但你可以使用dplyr包中的filter()。所以呢
your_dataframe <- your_dataframe %>% filter(between(Distance,-50000,50000))
bprjcwpo4#
使用
[
字符串
或
subset
型