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

R练习50题 - 第一期

unique:找出symbol中不重复的值。 在data.table的语法中,先进行列选择操作,再对列进行处理。所以上述语句会先执行str_detect,再执行unique。...(date, updown = ifelse(close - pre_close > 0, "UP", "DOWN"))] 代码第一行只有一个逗号。...这是因为data.table的第一个语句用来对列进行选择,由于我们这里需要对所有列进行统计,所以不需要进行任何操作。 keyby用来进行分组,是整个代码的核心。先来看keyby = ....代码第二行生成了一个新变量num。由于在keyby语句中我们已经按照日期与涨跌进行了分组,所以这一步我们只需要统计每个组有多少个股票就可以了。我们在这里使用了uniqueN这个函数。...整个代码的执行顺序是:先选择行(逗号空白行),再分组(keyby语句),最后进行组间统计(num语句)。 我们的答案中,行、列以及分组三条语句各占一行,实际上这仅仅是为了让代码更直观。

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

    ​文章复现—bulkRNA转录组结合机器学习等进行相关疾病研究01—多数据集去除批次效应后联合分析以及火山图标准绘制

    专题1—文章复现—bulkRNA转录组结合机器学习等进行相关疾病研究01—多数据集去除批次效应后联合分析以及火山图标准绘制今天给大家复现一篇bulkRNA转录组结合机器学习等进行相关疾病研究的文章《Identification...(dat)=ids$symbol#把ids的symbol这一列中的每一行给dat作为dat的行名 dat[1:4,1:4] #保留每个基因ID第一次出现的信息}save(gse_number,dat...GSE87473 , GSE92415的GPL平台是GPL13158,不能通过ids=idmap( a@annotation ,'soft')函数直接获取,应该去GEO网站上找到对应的文件下载导入到R中...(dat)=ids$symbol#把ids的symbol这一列中的每一行给dat作为dat的行名 dat[1:4,1:4] #保留每个基因ID第一次出现的信息} save(gse_number,dat...(dat)=ids$symbol#把ids的symbol这一列中的每一行给dat作为dat的行名 dat[1:4,1:4] #保留每个基因ID第一次出现的信息} save(gse_number,dat

    18720

    R练习50题 - 第二期

    练习 4 沪深300成分股中,每天上涨、下跌的股票各有多少? 分析: 本题仍旧是Ex-2的拓展,只不过要求我们进行行选择操作。在data.table的dt[i,j,by]语法中,i代表行选择操作。...data.table只会选择为True的那些元素。 在data.table的dt[i, j, by]语法中,先执行行选择操作i, 再执行分组操作by, 最后执行列操作j。...分析: 这一题的关键思路还是Ex-2中的分组。首先,我们自然要对日期分组,然后按照updown进行分组。...为了方便计算,我们首先在原数据集中新增一个变量ret,表示股票的日收益率。'...注意以上运算的结果是一个取值为True或False的向量,data.table最终会挑选出为True的那些行。 我们仍旧使用ifelse函数生成updown这个变量。

    88820

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

    R语言︱数据集分组 大型数据集通常是高度结构化的,结构使得我们可以按不同的方式分组,有时候我们需要关注单个组的数据片断,有时需要聚合不同组内的信息,并相互比较。...介绍一种按照日期范围——例如按照周、月、季度或者年——对其进行分组的超简便处理方式:R语言的cut()函数。...5.计算结果需要大幅加工,很不方便。可以看到,计算结果中的第一列实际上是“SELLERID.CLIENT”,我们需要把它拆分成两列并调换顺序才行。...(参考来源:R高效数据处理包dplyr和data.table,你选哪个?) ?...data.table包提供了一个非常简洁的通用格式:DT[i,j,by],可以理解为:对于数据集DT,选取子集行i,通过by分组计算j。

    20.9K32

    看初学者如何理解RNA-seq的count矩阵

    学徒笔记分享 接到曾老师作业后,我兴高采烈的打开GEO网站搜索GSE代号,粗略看一下分组后,打开R语言,想直接用代码下载数据。一顿操作. ? 竟然无法读取数据?? ?...我们下载下来后解压缩,发现里面有2组数据,一组是count.txt文件,还有一组是fpkm文件 ?...library(stringr) #设置group group_list=ifelse( str_detect(pd1$group,"WT"),"WT",ifelse(str_detect(pd1$group...load(file = "h2.Rdata") library(RColorBrewer) #热图 cg=names(tail(sort(apply(rdathp,1,sd)),500))#apply按行...('1'是按行取,'2'是按列取)取每一行的方差,从小到大排序,取最大的500行 n=rdathp[cg,] #形成一个新的矩阵,只有那排名500的基因 #绘制热图 annotation_col

    5.5K23

    提升R代码运算效率的11个实用方法

    本文中所有的计算都在配置了2.6Ghz处理器和8GB内存的MAC OS X中运行。...6.利用apply族函数来替代for循环语句 本部分将利用apply()函数来计算上文所提到的案例,并将其与向量化的循环语句进行对比。...接下来我们将利用Rcpp来实现该运算过程,并将其与ifelse()进行比较。 ? 下面是利用C++语言编写的函数代码,将其保存为“MyFunc.cpp”并利用sourceCpp进行调用。 ?...10.尽早地移除变量并恢复内存容量 在进行冗长的循环计算前,尽早地将不需要的变量移除掉。在每次循环迭代运算结束时利用gc()函数恢复内存也可以提升运算速率。...,857142.9行每秒 ifelse:1752X,1500000行每秒 which:8806X,7540364行每秒 Rcpp:13476X,11538462行每秒 文|Selva Prabhakaran

    1.7K80

    gggibbous带你绘制月亮散点图

    ❞ 关注下方公众号下回更新不迷路 加载R包 library(data.table) library(tidyverse) library(ggforce) library(ggtext) library...(detectors$native == "Yes", TRUE, FALSE) # 对数据进行聚合,按'detector'、'kind'、和'.pred_class'列组合,并计算每个组合的计数 df...$.pred_class) df = df |> split(df$class) # 根据'class'列将'df'数据框分割成多个子数据框 # 对每个子数据框进行操作 packing <- lapply...(df, function(x) { # 按'detector'列对子数据框进行排序 x = x[order(detector)] # 从子数据框中提取'detector'和'N2'列,并保留唯一的行...+ x$`.pred_class` |> as.numeric() # 计算x数据框中每个元素的纵坐标,并存储在'y0'列中 x$r = out[index]$radius # 将x数据框中每个元素的半径信息存储在

    20220

    转录组测序结果分析

    目的:选出关键基因 / 风险分数计算)模型预测和评估(ROC曲线 / C-index)差异分析的起点: counts矩阵,行名是symbol-reads计数数据 拿不到count数据如何让做差异分析...其他来源的转录组数据和TCGA的转录组数据的差别?整理输入数据的过程不同,差异分析无差别。数据下载方式不同,是否是count矩阵,行名需要是基因名,分组信息如何获取。..." data.table = F)# 保留ensembl id ,行名转换exp = as.matrix(dat[,4:9])rownames(exp) = dat[,1]library(tinyarray...(k1,"DOWN",ifelse(k2,"UP","NOT"))head(DEG2)table(DEG2$change)limma#####limma做转录组差异分析,多了一步voom标准化。...###参数是一个数据框,对他的行名取子集,取出change列是UP的行名。###三个R包差异分析结果都有统一的change列,所以可以用相同的函数取子集。

    21120

    转录组GSE157718_Tpm与Count差异分析的比较

    转录组GSE157718_Tpm与Count差异分析的比较在尝试复现GSE157718数据集的时候,发现网站同时提供了表达矩阵tpm形式与count形式,因此分别用这两种形式进行基因差异与富集分析,再进行对比...1 以fread函数导入的数据形式为data.table,设置行名很麻烦,这里先转化为data.frame形式2 行名或(GeneID列)为ENTREZID,需要转化为SYMBOL3 归根结底是表达矩阵的形式需要行名为基因名...> 5 ES2 ES#> 6 ES3 ES以logFC_t = 2,pvalue_t = 0.05为阈值,以DEseq2,edgeR,limma三个R包分别进行差异分析...,最好再去交集进行富集分析的结果如下2 Tpm形式Tpm也可以勉强进行差异分析,但是只能取log后,用limma做差异分析fpkm、rpkm需先转换为Tpm形式,用limma做差异分析limma差异分析参考基于芯片的分析流程表达矩阵...(k1,"Down",ifelse(k2,"Up","Not")))#Down Not Up # 158 20605 175 table(deg$change)#> #> Down

    33710

    IF10+杂志文章只用统计学显著的差异基因做GSEA就合理吗?

    在进行GSEA(基因集富集分析)之前,是否需要筛选统计学显著的差异基因,以及这一筛选过程对分析结果的影响,是许多研究者关心的问题。根据最新的研究和分析工具的使用经验,以下是一些关键点: 1....使用可视化工具辅助分析:为了更好地解释GSEA结果,建议使用可视化工具(如ROC曲线、分布图等)来评估基因集在不同样本组中的表现,而不仅仅是依赖于统计学指标。...研究者应根据具体的研究目标和数据特点,灵活选择分析方法,并综合考虑统计学显著性和生物学意义。.../codes/step2-check.R') 2、差异分析 这里三分组,我们就用 Cpt1a-KO vs baseline 做差异吧: rm(list = ls()) ## 魔幻操作,一键清空~...,但也有一些通路在两次分析中得到的结果截然相反,如通路 mmu04728:

    4800

    提升R代码运算效率的11个实用方法——并行、效率

    本文中所有的计算都在配置了2.6Ghz处理器和8GB内存的MAC OS X中运行。...6.利用apply族函数来替代for循环语句 本部分将利用apply()函数来计算上文所提到的案例,并将其与向量化的循环语句进行对比。...接下来我们将利用Rcpp来实现该运算过程,并将其与ifelse()进行比较。 ? 下面是利用C++语言编写的函数代码,将其保存为“MyFunc.cpp”并利用sourceCpp进行调用。 ?...10.尽早地移除变量并恢复内存容量 在进行冗长的循环计算前,尽早地将不需要的变量移除掉。在每次循环迭代运算结束时利用gc()函数恢复内存也可以提升运算速率。...,857142.9行每秒 ifelse:1752X,1500000行每秒 which:8806X,7540364行每秒 Rcpp:13476X,11538462行每秒 End.

    1.1K50

    R练习50题 - 第八期

    由于牵涉到行处理,所以最好的方法是在data.table语句中进行循环。本题运用了logical类向量在四则运算时TRUE为1,FALSE为0的特征,进行识别。...接下来,从第一行到最后一行,设定一个循环的t值,由于是判断最近连续3个交易日是否涨跌,那么就从每只股票的第4个交易日t+3开始计算,因而有l[[t+3]]和date[t+3];而后计算b1和b2最近三天的均值...最后,需要对生成的.N-3行观测进行合并,在这里用到了rbindlist(l)。 line 3 则计算出了每一天当中最近三天上涨和下跌的股票数。首先以!...故而将tag设定为三种观测值r3day_up、r3day_dn以及others,用ifelse语句进行生成。...而后根据date和tag分组计算,每天属于r3day_up、r3day_dn以及others的股票数量:stkcd_amount = uniqueN(symbol)。

    39610

    初探mRNA、lncRNA联合分析之下游

    lncRNA_index,]) p1+p2 draw_heatp <- function(exp){ cg=names(tail(sort(apply(exp,1,sd)),1000))#apply按行...('1'是按行取,'2'是按列取)取每一行的方差,从小到大排序,取最大的1000个 library(pheatmap) pheatmap(exp[cg,],show_colnames =F,show_rownames...= F) #对那些提取出来的1000个基因所在的每一行取出,组合起来为一个新的表达矩阵 n=t(scale(t(exp[cg,]))) # 'scale'可以对log-ratio标准化数值进行归一化...top,发现排第一的ENST00000343067其实也是EPB41 于是回到基因水平查看DEGs: 看看和原文差异表达结果logfc的散点图: library(data.table) deg_mrna_au...,越大模块越少,一般为0.25 # minModuleSize: 每个模块里最少放多少个基因,设定越大模块越少 # 输出结果根据模块中基因数目的多少,降序排列,依次编号为 `1-最大模块数`。

    66031
    领券