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

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

R语言︱数据集分组 大型数据集通常是高度结构化的,结构使得我们可以不同的方式分组,有时候我们需要关注单个的数据片断,有时需要聚合不同组内的信息,并相互比较。...在base包里和split功能接近的函数有cut(对属性数据分划),strsplit(对字符串分划)以及subset(对向量,矩阵数据框给定条件取子集)等。...a[row(a)==1&col(a)==2] #将返回6, 第一第二列 2、一个网络例子: ?...可以看到,计算结果中的第一列实际上是“SELLERID.CLIENT”,我们需要把它拆分成两列并调换顺序才。...")],function(x) sum(x)) 4、subset()函数 利用subset()函数进行访问和选取数据框的数据更为灵活,subset函数将满足条件的向量、矩阵和数据框子集的方式返回。

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

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

将一个R对象转化为data.table,R可以时矢量,列表,data.frame等,keep.rownames决定是否保留名或者列表名,默认FALSE,如果TRUE,将名存在"rn"中,keep.rownames...skip跳过读取的行数,为1则从第二开始读,设置了这个选项,就会自动忽略autostart选项,也可以是一个字符,skip="string",那么会从包含该字符的开始读; select,需要保留的列名或者列号...key,设置key,用一个多个列名,会传递给setkey showProgress,TRUE会显示脚本进程,R层次的C代码 data.table,TRUE返回data.table,FALSE返回...比如此例取出DT 中 X 列为"a"的,和"a"进行merge。on参数的第一列必须是DT的第一列 DT[....=FALSE] 和x[, .SD, .SDcols=cols]一样 mult 当有i 中匹配到的有多行时,mult控制返回的,"all"返回全部(默认),"first",返回第一,"last"返回最后一

5.6K20

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

data.table中,还有一个比较特立独行的函数: 使用:=引用来添加更新一列(参考:R语言data.table速查手册) DT[, c("V1","V2") := list(round(exp(V1...2、条件筛选 从前用subset的方式进行筛选比较多, new=14,select=a:f) (1)单变量 现在data.table与dplyr from_dplyr =...(data_one数据必须设置key,data_two默认第一为Key)。...返回匹配到键值所在列(V2列)所有包含变量值AD的所有: DT[c("A","D"), nomatch = 0] V1 V2 V3 V4 1: 1 A -1.1727 1 2: 2 A...在data.table操作跟data.frame很像,可以data[1,]就可以获得第一的数据,同时也可以用,data[1]来获得信息,这个是data.table特有的。

7.5K43

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

大家开始根据我的ngs学视频进行一系列公共数据集分析实战,其中几个小伙伴让我非常惊喜,不需要怎么沟通和指导,就默默的完成了一个实战!.../counts/counts.txt', header = T,data.table = F)#载入counts,第一列设置为列名 colnames(a1) counts <...naive和primed fix(nlgl)编辑构建样品名和分组信息 2. counts与TPM转换 基因表达量一般以TPMFPKM为单位来展示,所以还需要进行,若还想转化为FPKMCPM可参见Counts...基因ID转换 若上游中采用的是UCSC的基因和gtf注释文件,则表达矩阵名就是我们常见的gene symbol基因名;若上游采用的是gencodeensembl基因和gtf注释文件,那么我们就需要将基因表达矩阵名的...symbol table(duplicated(symbol)) #统计重复基因名 ###使用aggregate根据symbol列中的相同基因进行合并 counts <- aggregate(

15K45

data.table包使用应该注意的一些细节

是自动检测的   所以在循环读入文件的过程中,就算不同文件的分隔符不同,也可以循环一次性方便的读入; 还有就算后续改变了文件的分隔符,文件也可以读入,建议不加分隔符 fread可以自动检测注释,并且跳过注释...  默认skip=0,会跳过不规则的,因此有注释行时,可以走默认的skip参数 转换成矩阵时可以保留某一列为rowname   as.matrix作用于data.table时会调用as.matrix.data.table...,有一个rownames参数可以指定保留名的列 矩阵转换成data.table时可以保留列名   在as.data.table函数中同样有一个rownames参数,设置为T可以将保留下来作为data.table...中fintersect, fsetdiff, funion,fsetequal函数能对不同数据框的求交集,差集,并集等 可以直接对列分隔符进行分割   应用tstrsplit函数可以将一列按照分隔符分成多列...1.11.2 manual:https://cran.r-project.org/web/packages/data.table/data.table.pdf

1.5K10

懒癌必备-dplyr和data.table让你的数据分析事半功倍

df,V1:V3) 选择V1到V3列的所有数据 t<-select(df,-c(V1,V3)) 选择除了V1,V3以外的所有列 distinct( ) 去重 distinct(df,V1,V2) 根据...①第一个参数都是数据集df ②查询条件都是关于如何操作数据集的,在列上面进行操作 ③返回的都是新的数据集,不会改变原始数据集 在介绍下一个包之前,我们先来引入一个dplyr包的综合运用: grouped...data.table包 dplyr已经可以满足我们数据分析工作中大部分的需求,后来该包的作者又开发了一个炫酷吊炸天的包“data.table” 如果你的日常处理数据在几万到十几万,那么用dplyr...如果你的日常处理数据量非常大,有上亿的数据处理需求,这个时候你完全可以放心大胆的使用data.table 这个包异常的高效,速度非常的快!!...使用i DT[3:5] #选取3到5的数据 class(DT) [1] "data.table" "data.frame" DT[v1=="A"] #基于条件的选择 DT[v1 %in% c("A",

2.4K70

MR应知应会:MungeSumstats包

该软件包还使用户能够灵活地将重新格式化的文件导出为制表符分隔的 VCF R 本机对象,例如 data.table、GRanges VRanges 对象。...MungeSumstats 将尝试估算 beta 的不同方法(此顺序优先级)是:1. log(OR) 2. Z x SE。默认值为 FALSE。...N_dropNA 删除缺少 N 的。默认值为 TRUE。 rmv_chr向量字符 应删除 SNP 的染色体。如果不需要过滤,则使用 NULL。默认为 X、Y 和线粒体。...allele_flip_check 是否应根据参考基因检查等位基因列以推断是否需要翻转。默认值为 TRUE。...这可能会导致错误,因此默认情况下,将保留第一个 RS ID,并删除其余的,例如“rs5772025”。如果您只想完全删除这些 SNP,请将其设置为 TRUE。默认值为 FALSE。

1.2K10

R语言机器学习之构建并操作Task(2)(mlr3包系列)

上一期讲到task的col_roles信息,这个是用来储存各列角色的,接下来咱们用实例学习如何操作该对象: library(mlr3) mtcars[1:5,1:3] # 查看mtcars数据集(前五,...前三列),该数据集列名就是车的型号 #我们把mtcars的前3列转化为“data.table”,并保留名 data = as.data.table(mtcars[, 1:3],keep.rownames...Task(id,backend和target的定义请参考上期内容) task = TaskRegr$new(id = "cars", backend= data, target = "mpg") # 当保留原数据集的名时...disp这个feature列 task$filter(1:3) # 只保留1到3的数据 task$head() # 查看数据 task$cbind(data.table::data.table(foo...=letters[1:3])) # 列合并数据,也即添加一列新数据。

50510

代码对日期插值

这个数据集中有5观测,2分类(id等于1和2)。我们看到每个id对应的date都是有缺失的,例如从2001-01-09直接跳到了2001-01-12,当中少了10号和11号。...情 况1:每个group起讫时间相等 首先来说第一种情况,在这种情况下,每个id都对应着“相同”的日期起讫点,例如,全都是从2000-01-08至2000-02-13。...我们看到,原数据集存在观测的那些日期,val值都被保留,而被插入的那些日期,val是NA。当然,我们可以修改上一条语句中的nomatch参数把填充指改成任意值,例如0。...拓 展 等等,你不是说可以在一当中搞定的吗?当然没问题,以上文提到的第二种情况为例,我们可以把两合并为一: # 把两代码合并成一 dt[dt[, ....处女座无数次为了给数据集取一个合适的名字心力交瘁…… 下 期预告 根据官网公告,Microsoft R Open 3.4版本将会“coming soon in May”,大猫会在第一时间给大家发布号外~

1.4K30

代码搞定分组回归

事件研究法在第一期中已经讲述,本期我们就来瞧瞧如何做分组回归~ PS:由于微信的限制,给大猫留言的小伙伴超过48小时后大猫就不能回复你们了。所以如果想联系大猫,可以按照文章最后的微信号加大猫微信哦。...T), y = rnorm(100), x = rnorm(100)) 要实现一代码完成分组回归,需要用到data.table包!...小伙伴们会发现此时每个都有两观测,其实他们分别对应着回归的intercept和coefficient。...其中的原理是,data.table最终的输出必须是一个class为list的元素,符合条件的除了list自己,还包括 data.frame,data.table等。...下 期预告 下期我们继续探索data.table包的强大功能,大猫教大家如何用一代码搞定滚动回归!

3.4K40

手把手教你用R语言读取CSV文件

如前面所述,第一个参数是文件名(字符型变量)。注意我们如何显式地使用参数名file、head和sep。函数的参数能够位置顺序赋值,而不用显式指定参数名,但指定参数名是最佳实践。...第二个参数header,表示数据的第一,即列名。第三个参数sed,表示数据的分隔符。可以设为“\t”(tab分隔符)或者“;”(分号分隔符),以读取不同类型的文件。...这样既节省计算时间(当大数据集包含许多字符列,也意味着有许多唯一值),又能保留列为字符。 stringAsFactors参数也可以用在data.frame中。再次创建“Sport”列。...该函数的第一个参数是读取的文件路径或者URL。col_names默认为TRUE,指定文件的第一为列名。...02 fread函数 另一个读取大量数据的函数是data.table包的fread函数。第一个参数是读取的文件路径或者URL。header参数表示文件的第一是列名,sep指定分隔符。

21.3K21

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

因此,在对大数据处理上,使用data.table无疑具有极高的效率。这里主要介绍在基因数据分析中可能会用到的函数。...\n"); sep 列之间的分隔符; sep2 分隔符内再分隔的分隔符,功能还没有应用; nrow 读取的行数,默认-l全部,nrow=0仅仅返回列名; header 第一是否是列名...需要保留的列名或者列号,不要其它的; drop 需要取掉的列名或者列号,要其它的; colClasses 类字符矢量,用于罕见的覆盖而不是常规使用,只会使一列变为更高的类型,不能降低类型...key 设置key,用一个多个列名,会传递给setkey showProgress TRUE会显示脚本进程,R层次的C代码 data.table TRUE返回data.table...fmatch第一次匹配较慢,第二次匹配快,chmatch匹配虽然没有fmatch第二次匹配快,但是首次匹配也有较快的速度。

3.3K10

【进阶】Next N rows when condition is TRUE

如果硬要翻译的话,大概就是“当某条件成立时,找到这个观测后N的观测”。 举个例子吧! ? 在这个数据集中,我们希望每当condition=1时,就标记出它接下来的2(这里N=2了)。...# a是分组变量; dt <- data.table(a = rep(c("a", "b", "c"), each = 5)) # condition是条件;desireOutcome是希望获得的结果...dt[, condition := as.numeric(.I %% 4 == 0)] 本文需要用到data.table包!...对于原数据集,如果我们删掉Reduce函数,只保留shift函数 dt[, shift(condition, 0:2, fill = 0), by = a] 那么生成的结果就是这样: ?...在使用shift函数后,我们实际上生成了三个向量,第一个向量只有条件成立时才为1, 第二个向量条件成立后的“滞后一期”才为1, 第三个向量只有条件成立后的“滞后两期”才为1。

53910
领券