首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

「R」数据操作(三):高效data.table

1个参数是行筛选器,第2个对筛选后数据进行适当计算。...对数据进行分组汇总 by是data.table另一个重要参数(即方括号内第3个参数),它可以将数据按照by进行分组,并对分组计算第2个参数。...,by所对应组合是唯一,虽然实现了目标,但结果没有设置键: key(type_class_test0) #> NULL 这种情况下,我们可以使用keyby来确保结果data.table自动将...动态作用域 我们不仅可以直接使用,也可以提前定义注入.N、.I和.SD来指代数据重要部分。...,每条记录了钻石10个属性,现在我们队cut每种切割类型都你拟合一个线性回归模型,由此观察每种切割类型carat与depth是如何反映log(price)信息。

5.9K20

plink分析100个性状批量gwas分析

如果还是按照每个性状一个文件夹,每个文件夹中一个脚本,不断地修改脚本,一点也不高端,所以,遇到这种情况,批量处理就派上用场了。...之所以之前一直不用,因为10个性状一下,没有必要,费心思想还不如直接动手操作了,但是100个性状真的吓到我了,不满足才能有进步。就看了一下参数说明,然后五分钟搞定了。...虽然五分钟搞定事情,但是写博客20分钟记录一下还是有必要,独乐乐不如众乐乐。 开始介绍。 plink其实没有多性状模型参数,但是它有一个--mpheno,指定性状所在,我们可以借用。...数据来源,GWAS CookbookGWAS-dat2(领取方法:快来领取 | 飞哥GWAS分析教程),用下面代码生成表型数据: library(data.table) dd = fread("phe.txt...re1* re1.assoc.linear re1.log re1.nosex GWAS分析结果: 注意,上面基因型没有质控,所以有P为NA情况,正常质控数据不会存在这种情况。

34731
您找到你想要的搜索结果了吗?
是的
没有找到

批量100个性状进行gwas分析--代码分享

如果还是按照每个性状一个文件夹,每个文件夹中一个脚本,不断地修改脚本,一点也不高端,所以,遇到这种情况,批量处理就派上用场了。...plink其实没有多性状模型参数,但是它有一个--mpheno,指定性状所在,我们可以借用。...数据来源,GWAS CookbookGWAS-dat2,用下面代码生成表型数据: library(data.table) dd = fread("phe.txt") head(dd) set.seed...表型数据 表型数据:模拟100个性状,整理为txt,第一FID,第二ID,第三以后为性状 2. 基因型数据 3....re1* re1.assoc.linear re1.log re1.nosex GWAS分析结果: 注意,上面基因型没有质控,所以有P为NA情况,正常质控数据不会存在这种情况。

11510

R语言数据分析利器data.table包 —— 数据框结构处理精讲

)直接修改某个位置,rownum行号,colnum,号,行号号推荐使用整型,保证最快速度,方法是在数字后面加L,比如1L,value是需要赋予。...比如此例取出DT X 列为"a"行,和"a"进行merge。on参数第一必须是DT第一 DT[....(sv=sum(v))] #对y求和,输出sv内容就是sum(v) DT[, ...., by=x][order(x)] #和上面一样,采取data.table链接符合表达式 DT[v>1, sum(y), by=v] #对v进行分组后,取各组v>1行出来,各组分别对定义...roll 当i全部行匹配只有某一行不匹配时,填充该行空白,+Inf(或者TRUE)用上一行填充,-Inf用下一行填充,输入某数字时,表示能够填充距离,near用最近行填充 rollends

5.6K20

R语言基因组数据分析可能会用到data.table函数整理

因此,在对大数据处理上,使用data.table无疑具有极高效率。这里主要介绍在基因组数据分析可能会用到函数。...; verbose 是否交互和报告运行时间; autostart 机器可读这个区域任何行号,默认1L,如果这行是空,就读下一行; skip 跳过读取行数,为1从第二行开始读,...by ]语法做 但是如果我要将上述DTv3作为一个影响因素,作为tag,先按v1、v2汇总,再将对应v4分为v3=1和v3=2两类,查看v1、v2取值相同v3不同对应v4情况,这个时候用dcast...; na.rm 如果TRUE,移除NA; variable.factor 如果TRUE,变量转化为因子; verbose 如果TRUE,在工作台产生交互信息,默认options...,当是TRUE时,如果mult=“all”,返回两,一x号,一相对应y,如果nomatch=NA,不匹配返回yNA,如果nomatch=0,跳过该,设置mult="first“,mult

3.2K10

R︱高效数据操作——data.table包(实战心得、dplyr对比、key灵活用法、数据合并)

data.table,还有一个比较特立独行函数: 使用:=引用来添加或更新一(参考:R语言data.table速查手册) DT[, c("V1","V2") := list(round(exp(V1...DT数据集按照x分组,然后计算v变量和、最小、最大。 (2)dplyr函数利用%>%(链式操作)来改进: 链式操作是啥意思呢?...2、on=""方式 DT[X, on="x"] 这里on指的是DT变量变量名称,X还是按照key,如果没设置就会默认第一行为key。...—————————————————————— 实战一:在data.table如何选中,如何循环提取、操作data.table?...(x)] 还有 data$x 如果有很多名字很长指标,data.table如果进行遍历呢? data[,1]是不行,选中方式是用列名。

7.5K43

好强一个Julia!CSV数据读取,性能最高多出R、Python 22倍

由于Pandas不支持多线程,因此报告所有数据均为单线程速度。 浮点型数据集 第一个数据集包含以1000k行和20排列浮点。 ? Pandas需要232毫秒来加载此文件。...单线程CSV.jl是没有多线程Pandas(Python)1.5倍,而多线程CSV.jl可以达到11倍。 字符串数据集 I 此数据集在且具有1000k行和20,并且所有不存在缺失。 ?...单线程CSV.jl比data.table快2.5倍,而在10个线程,CSV.jl大约比data.table快14倍。 字符串数据集 II 该数据集大小与字符串数据集 I 相同。...区别在于,其每一是存在缺失。 ? Pandas需要300毫秒。 单线程,CSV.jl比R快1.2倍,而多线程相比,CSV.jl快约5倍。...单线程,CSV.jl比R快2倍,而使用10个线程快了10倍。 按揭贷款风险数据集 从Kaggle取得按揭贷款风险数据集是一种混合型数据集,具有356k行和2190

2K63

R语言︱数据集分组、筛选(plit – apply – combine模式、dplyr、data.table)

R语言︱数据集分组 大型数据集通常是高度结构化,结构使得我们可以按不同方式分组,有时候我们需要关注单个数据片断,有时需要聚合不同组内信息,并相互比较。...filter——数据筛选(筛选观测,行) filter(Hdma_dat,pclass == 1) ##################################### #dplyr基本函数...可以看到,计算结果第一实际上是“SELLERID.CLIENT”,我们需要把它拆分成两并调换顺序才行。...(iris$setosa)] #按照照setosa大小,重排Sepal.Length数据 四、dplyr与data.table data.table可是比dplyr以及python...在使用data.table时候,需要预先布置一下环境: data<-data.table(data) 如果不布置环境,很多内容用不了。

20.5K32

R语言学习笔记之——数据处理神器data.table

DT[i,j,by] 如果这个过程是SQL是由select …… from …… where …… groupby …… having 来完成,在R其他基础包起码也是分批次完成。...data.table索引 索引与数据框相比操作体验差异比较大,data.table索引摒弃了data.frame时代向量化参数,而使用list参数进行列索引。...注意以上新建时,如果只有一,列名比较自由,写成字符串或者变量都可以,但是新建多,必须严格按照左侧列名为字符串向量,右侧为列表模式,当然你也可以使用第二种写法。...当整列和聚合同时输出时,可以支持自动补齐操作。 当聚合函数与data.table分组参数一起使用时,data.table真正威力才逐渐显露。 mydata[,....(carrier,origin,dest) 先按照三个维度进行全部分组; .SDcols=c("arr_delay","dep_delay")分别在筛选每一个子数据块儿上特定; lapply(.

3.6K80

作者仅提供了fpkm格式表达量矩阵转录组测序数据集该如何重新分析呢

以下是一些常见格式: 计数矩阵(Count Matrix): 这是最基本格式,通常由比对到参考基因组读段生成。 每一行代表一个基因或转录本,每一代表一个样本。...单元格表示该基因在该样本读段计数。 FPKM/FPKM-UQ(每千个碱基每百万片段比率/未量化FPKM): FPKM是标准化表达量指标,考虑了基因长度和测序深度。...,有一些样品不满足前面的转录组定量要求就被暴力删除了,其实也是合理选择样品 : 不满足前面的转录组定量要求就被暴力删除了 当然了,就算是我们拿到了DESeq2/edgeR要求输入数据是计数矩阵(raw...如果你恰好是先兆子痫研究方向, 就可以把这个数据集更加细致解读和挖掘一下,未必不是一个课题哦!...十年后我环游世界各地高校以及科研院所(当然包括中国大陆)时候,如果有这样情谊,我会优先见你。

13410

RNA-seq入门实战(三):在R里面整理表达量counts矩阵

/counts/counts.txt', header = T,data.table = F)#载入counts,第一设置为列名 colnames(a1) counts <...基因ID转换 若上游采用是UCSC基因组和gtf注释文件,表达矩阵行名就是我们常见gene symbol基因名;若上游采用是gencode或ensembl基因组和gtf注释文件,那么我们就需要将基因表达矩阵行名...table(duplicated(symbol)) #统计重复基因名 ###使用aggregate根据symbol相同基因进行合并 counts <- aggregate(counts...column_to_rownames(counts,'Group.1') tpm <- aggregate(tpm, by=list(symbol), FUN=sum) ###使用aggregat 将symbol相同基因进行合并...这里只展示了获取基因表达TPM如果还想了解如何获得FPKM请参考文章:获取基因有效长度N种方法第二部分内容以及Counts FPKM RPKM TPM 转化。

14.9K45

能不能让R按行处理数据?

如果要自己寻找Stackoverflow上与R或是data.table相关问题,可以在搜索栏输入[R] [data.table] Your question。 提 出问题 好啦,开始上课!...首先,假设我有一个这样数据集(暂且命名为t1): ? 现在我想做是对于每一行,找出非NA,填充到“mean.scale”这个新变量;如果有多个非NA,那么就计算其平均值。...(fund_name)] 其中关键在于拼接函数c(),它将不同向量拼接成了一。另外,这个操作是不是有点熟悉?...事实上,data.table也整合了reshapecast和melt函数,并且将cast函数升级为dcast,感兴趣小伙伴可以去研究一番。 在拉直数据后,接下来要做工作就很简单了。...我们只要把数据按照fund_name分组,然后对每组求scale均值。唯一需要注意有两点。首先,别忘了meanna.rm = T参数,它能够让函数忽略缺失

1.3K20

Python 3 学习笔记:流程控制

如果一个问题可能有多种情况发生,而实际只会发生一种,顺序结构就不能做这一类选择。 选择控制 满足条件即执行,不满足跳过。...只有在前面所有的表达式都为假时,才会执行 else 后语句。 循环控制 如果满足条件进入循环体,循环体执行完毕后,再次判断条件是否满足,如果满足再次进入循环体,反之执行循环体之后语句。...;如果为假,执行循环体之后语句。...是一个个从 objects 取出可迭代变量,即只要 iteration 存在于 objects 执行循环体。...例如,在 if 结构如果满足条件时就执行某系语句,而当还没有想好这些语句如何编写时,可以先使用 pass 占位,保证程序可以正常向下运行,待想好后在替换 pass 即可。

52010

一起来学演化计算-matlab基本函数find

如果X是一个向量,那么find返回一个与X方向相同向量 如果X是一个多维数组,那么find返回结果线性索引向量 如果X不包含非零元素或为空,find返回一个空数组 k = find(X,n)...其中包含X非零元素 find:找出向量或矩阵中非零元素位置标识 在许多情况下,都需要对矩阵符合某一特定条件元素位置进行定位,如将某一矩阵为零元素设为1等。...k=find(A) 此函数返回由矩阵A所有非零元素位置标识组成向量。如果没有非零元素会返回空。二维数组先寻找再寻找行 ? 三维数组寻找 ?...[i,j,v]=find(A) 此函数返回矩阵A非零元素行和标识,其中i代表行标而j代表列表,同时,将相应非零元素放入列向量v,即i和j与[i,j]=find(A)取值相同,只是增加了非零元素这一项...利用find()函数实现部分矩阵替换 ?

1.4K70

你有一份面试题要查收

具体操作如下: 【题目2】将下表抵押权人内容包含"长安"单元格置换为"长安保险公司" image.png 如果我们用替换功能把“长安”替换成“长安保险公司”,得到结果如下: image.png...定位出空白单元格后,在编辑栏里也就是写公式处输入“未知”,同时按下“ctrl+enter”,具体操作如下: image.png 如果希望在同中空白单元格是按照上一行填充,在编辑栏里也就是写公式处输入...其语法是: image.png 在本例,公式第一个参数为加盟商=“蚂蚁**”,判断是否满足这一条件,如果满足就是TRUE,第二参数为“客户金额乘以10000”,如果不满足为FALSE第三参数为原来客户金额...第三参数是选择数组,如工作部门在整张表第1,最终得到当姓名是李项时,工作部门会显示“运营部”。...本例最终公式为两个函数嵌套使用,具体如下: image.png 当姓名固定不变时,住宅电话在整张表第3,所以INDEX函数第三参数变成3表示在整个表格,第1行第3就是李项住宅电话,

2.1K11

SQL命令 ALTER TABLE

它不能更改多。 MODIFY 可以更改单个或逗号分隔列表定义。它不支持ALTER COLUMN提供所有选项。 删除可以从一个或一组字段删除约束。DROP只能对单个约束进行操作。...如果语句对指定了NOT NULL约束,并且该没有默认如果已存在数据,该语句将失败。这是因为,在完成DDL语句之后,不满足所有预先存在NOT NULL约束。...如果语句对指定了NOT NULL约束,并且该列有默认该语句将更新表所有现有行,并将该默认分配给该字段。这包括CURRENT_TIMESTAMP等默认。...如果表包含数据,如果包含空,则不能指定NOT NULL; 这将导致SQLCODE -305错误。 如果更改包含数据排序规则类型,必须重新构建该所有索引。...它不会更改相应持久类属性名称。Modify oldname重命名newname替换触发器代码和ComputeCode旧字段名称引用。 更改特征:数据类型、默认和其他特征。

2K20
领券