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

【R语言】数据框按两列排序

有时候我们会按照两个条件来对数据排序。假设我们手上有下面这套数据,9个人,第二列(score)为他们的考试成绩,第三列(code)为对应的评级。80分以上为优秀,60-80为良,60以下为差。...在Excel里面其实还是很容已实现的。我们只需要先根据code来进行升序排序,然后次要关键字再根据分数进行降序排序。 我们就会得到如下结果 那么这个过程怎么在R里面实现呢?...主要用的是R中的order这个函数。...#读入文件,data.txt中存放的数据为以上表格中展示的数据 file=read.table(file="data.txt",header=T,sep="\t") #先按照code升序,再按照Score...在R里面我们还可以指定code按照一定的顺序来排列 #按照指定的因子顺序排序,先good,在excellent,最后poor file$Code <- factor(file$Code , levels

2.3K20

「R」分组应用和排序去重的应用与比较

如果使用惯了tidyverse套装,我们脑子里容易冒出来的是这样的解法:使用分组应用。...但如果分组有成千上万,分组的时间代价就很高了。有没有其他的方式可以解决该问题呢? 其实处理这种去重问题,特别还涉及到排序,我们可以采用先排序再去重的方式解决。...,在这个只有2个变量的数据集测试中,第一种方法远快于第二种方法。...但注意,这里其实存在很多的变量,包括数据的行数、分组数目、以及实际情况下数据集的变量数目。哪种更适合需要根据现实场景进行测试考察。...本文的重点是,问题的解决之道往往不只一种,当程序慢下来的时候,我们不要忘记思考和尝试其他的方案。

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

    R语言ggplot2画图比较两组连续型数据的几种方案

    连续型数据的的分组比较在科研生活中非常常见,比如:实验组和对照组基因表达量的比较、临床病人存活组和死亡组某项检查指标的比较 等等。检验两组连续型数据之间是否存在差异通常会使用T检验。...以下代码用到3个R语言包 分别是ggplot2 用来画图RColorBrewer 用来生成颜色dplyr 用来整理数据 ggplot2和dplyr如果是第一次使用需要安装,安装用到的命令是 install.packages...data是包含两个变量,分别是CRP和Status。...=Status), width=0.6)+ scale_fill_brewer(palette = "Dark2")+ theme(legend.position = "none") 箱线图比较常用...分组信息在x轴已经体现,故去除图例,避免累赘。出图如下: ?

    4.6K20

    NRI的基本概念和基于R语言计算NRI——比较两个模型的预测能力

    作用 一般情况,在预测结局事件的时候,不同的人可能会建立不同的预测模型,当我们去评价两个模型的好坏或者预测能力的强弱的时候,你可能会说AUC呀,其实除了AUC,还有NRI也是用来比较两个模型预测能力的。...而在诊断试验中,通常根据检验指标的判断结果和金标准诊断结果,整理成一个2×2的表格,如下表所示,并以此来计算诊断试验中两个比较重要的指标,即灵敏度和特异度。...净重新分类指数NRI 相对于ROC曲线及其AUC,NRI更关注在某个设定的切点处,两个模型把研究对象进行正确分类的数量上的变化,常用来比较两个模型预测能力的准确性。...NRI计算 如下两个表所示,表一为一般情况,表二为特定情况,(一共595个样本,其中180个位患者组,415个位非患者组),我们将研究对象按照真实的患病情况分为两组,即患者组和非患者组,然后分别在这两个分组下...3.根据event列构建logistic回归模型 可以看到构建的两个模型,第二个模型比第一个模型多了一个protime指标。 4.

    13.7K20

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

    R语言︱数据集分组 大型数据集通常是高度结构化的,结构使得我们可以按不同的方式分组,有时候我们需要关注单个组的数据片断,有时需要聚合不同组内的信息,并相互比较。...##按照已有的类别数据,分类 g分组 ##例2:对矩阵分组(按列) m的第一列实际上是“SELLERID.CLIENT”,我们需要把它拆分成两列并调换顺序才行。...,以及ID分组,然后分组求资产mortagage的平均数。...data.table比较简洁一步搞定,dplyr花了两步,不过也dplyr也可以通过%>%来实现一步搞定。%>%的功能是用于实现将一个函数的输出传递给下一个函数的第一个参数。

    20.9K32

    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 =...(x,y)来分组,而且可以设定x/y两种分组,来求new_car的平均值。 (1)data.table多种方式混合输出: mydata[,....3、第三种方式:key-merge setkey(DT,x) setkey(X,V1) merge(DT, X) 预先设置两个数据集的key后,也可以用比较常见的merge函数来进行数据合并。...(x)] 还有 data$x 如果有很多名字很长的指标,data.table中如果按列进行遍历呢? data[,1]是不行的,选中列的方式是用列名。

    9.3K43

    RFM会员价值度模型

    按会员ID做聚合   这里使用groupby分组,以year和会员ID为联合主键,设置as_index=False意味着year和会员ID不作为index列,而是普通的数据框结果列。...2个边界值 确定RFM划分区间 f的分布情况说明 r和m本身能较好地区分用户特征,而f则无法区分(大量的用户只有1个订单) 行业属性(家电)原因,1年购买1次比较普遍(其中包含新客户以及老客户在当年的第...F和M的规则是值越大,等级越高 而R的规则是值越小,等级越高,因此labels的规则与F和M相反 在labels指定时需要注意,4个区间的结果是划分为3份  将3列作为字符串组合为新的分组 代码中,先针对...3列使用astype方法将数值型转换为字符串型 然后使用pandas的字符串处理库str中的cat方法做字符串合并,该方法可以将右侧的数据合并到左侧 再连续使用两个str.cat方法得到总的R、F、M字符串组合...第1行代码使用数据框的groupby以rfm_group和year为联合对象,以会员ID会为计算维度做计数,得到每个RFM分组、年份下的会员数量 第2行代码对结果列重命名 第3行代码将rfm分组列转换为

    47410

    GEO

    #这个`是在我们提取的一列名称中有空格时,R语言会自动生成`}else if(F){ # 第二种方法,自己生成 有风险,可能会数错数!...比较万能,只要两个分组中可以有一个明确的字符串来检测就可以 Group=ifelse(str_detect(pd$title,"control"),#str_detece是检查是否有这个字符串的意思...ID和基因symbol,toTable是提取head(ids)方法2 读取GPL网页的表格文件,按列取子集https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?...不需要改的,直接用为deg数据框添加几列1.加probe_id列,把行名变成一列library(dplyr)deg id=rownames(deg))2.加上探针注释...g,])) # t(exp[g,])是转置,行变成列,然后cor()计算列与列之间的相关性pheatmap(M)library(paletteer)#配色R包my_color = rev(paletteer_d

    1.5K51

    盘一盘 Python 系列 4 - Pandas (下)

    数据表的重塑和透视 数据表的分组和整合 4 数据表的合并和连接 数据表可以按「键」合并,用 merge 函数;可以按「轴」来连接,用 concat 函数。...] 再被 stack(0) 之后变成 (列 → 行) 行索引 = [r2, c] 列索引 = r1 重塑后的 DataFrame 这时行索引有两层,第一层是代号,第二层是特征,而列索引只有一层 (地区)...] 再被 stack(1) 之后变成 (列 → 行) 行索引 = [r2, r1] 列索引 = c 重塑后的 DataFrame 这时行索引有两层,第一层是代号,第二层是地区,而列索引只有一层 (特征)...] 再被 stack(0) 之后变成 (列 → 行) 行索引 = [r1, c] 列索引 = r2 重塑后的 DataFrame 这时行索引有两层,第一层是地区,第二层是特征,而列索引只有一层 (代号)...它们只是改变数据表的布局和展示方式而已。 ---- 【分组数据表】用 groupBy 函数按不同「列索引」下的值分组。一个「列索引」或多个「列索引」就可以。

    4.8K40

    09.交叉&结构&相关分析1.交叉分析2.结构分析3.相关分析

    1.交叉分析 用于分析两个或两个以上,分组变量之间的联系,以交叉表形式进行变量间关系的对比分析。...var 方差 sd 标准差 设置axis参数,指定是按列运算还是按行运算 axis参数说明 0:按列运算(默认) 1:按行运算 import numpy import pandas data = pandas.read_csv...线性相关:当一个连续变量发生变动时,另一个连续变量相应的呈线性关系变动 采用皮尔逊相关系数r的绝对值来度量连续变量之间线性相关强度 线性相关系数r(取绝对值)的范围 相关程度 0 ≤ r 列两两之间的相似度 如果由序列调用corr方法,只计算该序列与传入的序列之间的相似度 返回值: DataFrame调用:返回DataFrame Series调用:返回一个数值型,大小为相关度...52.6 9 10 4931 4091 2.0 13.9 86.1 40.6 10 11 868 4963 1.9 6.2 93.8 61.9 #两个列之间的相关度计算

    2.1K10

    安捷伦芯片原始数据处理

    由于本文涉及了比较详细的双通道芯片上游分析及原理,因此预计将这篇文章分成上下两部分推送。...GSE_number<-"GSE33479" library(limma) library(R.utils) #批量解压数据,只能运行一次,再运行时候会报错(压缩包不能解压两遍) files的空格。剩下的列提供了要与不同类型的点关联的颜色。此代码假定探测注释data.frame包括列ID和列Name。...=dat1[rownames(dat1) %in% ids$ID,] #将ids的行顺序按probe_id整理至与dat1的行名一致 #反正结果是ids每行的probe_id与dat的rownames...为否,即取出不重复的项,去除重复的gene ,保留每个基因最大表达量结果 dat1=dat1[ids$ID,] #新的ids取探针id这一列,将dat按照取出的这一列中的每一行组成一个新的dat rownames

    93910

    R语言学习 - 非参数法生存分析

    常用于肿瘤等疾病的标志物筛选、疗效及预后的考核。 简单地说,比较两组或多组人群随着时间的延续,存活个体的比例变化趋势。活着的个体越少的组危险性越大,对应的基因对疾病影响越大,对应的药物治疗效果越差。...R做生存分析 R中做生存分析需要用到包survival和survminer。输入数据至少两列,存活时间和生存状态,也就是测试数据中的Days.survial和vital_status列。...如果需要比较不同组之间的差异,也需要提供个体的分组信息,如测试数据中的PAM50列。对应TCGA的数据,一般根据某个基因的表达量或突变有无对个体进行分组。...根据PAM50属性对病人进行分组,评估比较两组之间生存率的差别。...# 这三步不是必须的,只是为了方便,选择其中的4个确定了的分组进行分析 # 同时为了简化图例,给列重命名一下,使得列名不那么长 BRCA_PAM50 <- BRCA[grepl("Basal|Her2|

    1.3K80

    快速掌握R语言中类SQL数据库操作技巧

    在数据分析中,往往会遇到各种复杂的数据处理操作:分组、排序、过滤、转置、填充、移动、合并、分裂、去重、找重、填充等操作。这时候R语言就是一个很好的选择:R可以高效地、优雅地解决数据处理操作。...例如:合并来源不同,结构相似的两个表格 3.1 向量合并 #一维向量合并直接将要合并的变量以","分割放到c()中即可。...(等长) 总结:cbind等行数、按列合并(无序) #生成测试数据 > ID1 <- c(1:4) > ID2 <- c(2:5) > name<-c("A","B","C","D") > score...C 4 74 4 D 5 6 3.3 rbind行合并 总结:按行合并,需要注意数据集需要有相同的列字段名 > #生成测试数据student1 > ID <- c(...","D") > score <- c(11,2,55,3) > student2ID,score) #按行合并,需要注意数据集需要有相同的列字段名 > rbind(student1

    5.7K20

    R中五种常用的统计分析方法

    参数说明 formula:分组表达式,格式:统计列~分组列1+分组列2+... data=需要分组的数据框 function:统计函数 aggregate(name ~ class, data=data...分组函数 cut(data,breaks,labels,right) 参数说明 data=需要分组的一列数据 breaks=分组条件,如果是一个数字,那么将平均分组;如果是一个数组,那么将按照指定范围分组...length) 3、交叉分析tapply(相当于excel里的数据透视表) 通常用于分析两个或两个以上,分组变量之间的关系,以交叉表形式进行变量间关系的对比分析; 交叉分析的原理就是从数据的不同维度,...margin,占比统计方式,具体参数如下: 属性 注释 1 按行统计占比 2 按列统计占比 NULL 按整体统计占比 data r 可以用来描述定量变量之间的关系 相关分析函数: cor(向量1,向量2,...)返回值:table类型的统计量 data <- read.csv('data.csv', fileEncoding

    3.5K70
    领券