首页
学习
活动
专区
圈层
工具
发布

R语言基础-数据清洗函数pivot_longer

pivot_longer函数,是tidyr包下面的一个函数。...names_transform, values_transform:(可选)列名-函数对的列表。或者,可以提供一个函数,该函数将应用于所有列。如果您需要更改特定列的类型,请使用这些参数。...例如,names_transform = list(week = as.integer) 会将名为 week 的字符变量转换为整数。...如果未指定,则从 names_to 生成的列的类型将为字符,从 values_to 生成的变量的类型将是用于生成它们的输入列的常见类型。names_repair:如果输出的列名无效会怎样?...values_drop_na:如果为 TRUE,将删除 value_to 列中仅包含 NA 的行。这有效地将显式缺失值转换为隐式缺失值,并且通常仅应在数据中的缺失值由其结构创建时使用。

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

    tidyverse

    官网:https://www.tidyverse.org/ 一、tidyr 数据整理 tidyr 包用于将数据重新整合,替代之前的 reshape 和 reshape2 包,用于数据的重塑与聚合...tidyr 之前的版本主要包含以下几个重要函数: gather:宽数据变成长数据; spread:长数据变成宽数据; unite:将多列按指定分隔符合并为一列...数据的整理是一个从数据框的统计结构(变量与观察值)到形式结构(列与行)的映射。...tidyr 包主要就是用来将数据转换为“整洁数据”的包,主要功能为 1)缺失值的简单补齐 2)长形表变宽形表与宽形表变长形表; 1.2 长数据与宽数据 长数据 宽数据 1.3...这些概念非常形象地描述了数据转换的过程。melt 将数据转换为长数据,cast 重新调整变量。tidyr 数据转换也是类似的方法。

    2.7K10

    表达矩阵转换为数据框画图

    主要介绍使用pivot_longer进行长宽数据转换,这两个函数都是来自于tidyr包 问题背景 现在有一个表达矩阵,要画箱线图 但是,上面表格不满足向ggplot2画箱线图的函数传递参数的需求,要变换成数据框把所有数字变成一列传递给...首先行列转置 把原来的行名变成第一列 把原来的列名变成第二列 就变成数据框形式了。也就是把宽数据变成长数据。 代码如何实现?...) library(tibble) library(dplyr) dat = t(exp) %>% # 先转置 as.data.frame() %>% # 变成数据框 rownames_to_column...() %>% # 行名变成一列 mutate(group = rep(c("control","treat"),each = 3)) # 按test的分组新加一列分组,用于画图上不同颜色 pdat...()函数直接解析 列名中含有多个变量可以用正则表达式拆分成多列 一行有多个观测 列名有重复 详见使用pivot_longer和pivot_wider进行长宽数据转换-CSDN博客

    83810

    R 数据整理(七:使用tidyr和dplyr处理数据框 2.0)

    数据集如果用于统计与绘图,需要满足一定的格式要求,(Wickham, 2014) 称之为 整洁数据 (tidy data),基本要求是每行一个观测,每列一个变量,每个单元格恰好有一个数据值。...,后续的参数是条件,这些条件是需要同时满足的,另外,条件中取 缺失值的观测自动放弃,这一点与直接在数据框的行下标中用逻辑下标有所不同,逻辑下标中有缺失值会在结果中 产生缺失值。...extract 除了seperate 外,函数 extract() 可以按照某种正则表达式表示的模式从指定列拆分出对应于正则表达式中捕获组的一列或多列内容。...nest 和 unnest 函数,可以将子数据框保存在 tibble 中,可以将保存在 tibble 中的子数据框合并为一个大数据 框。...我们还可以借助unlist 将tibble 元素提取出来:

    14.1K30

    R绘图 | 表达矩阵画箱线图

    箱式图用于多组数据平均水平和变异程度的直观分析比较。每组数据均可呈现其最小值、最大值、平均水平,最小值、最大值形成间距都可以反映数据的变异程度。 主要函数为geom_boxplot()。...1 原始数据 常规的表达矩阵每一行为一个基因,每一列为一个样本,如果拿到的数据不符合上述规则,首先需要对数据进行调整。 如果每一行为一个样本,每一列为一个基因则需要使用t()进行转置。...) library(tibble) library(dplyr) dat = t(exp) %>% # “%>%”为管道符,相当于linux中的“|” as.data.frame() %>% #...只有数据框才能使用将行名变成一列的命令 rownames_to_column() %>% # 将行名变成一列 mutate(group = rep(c("control","treatment..."),each = 4)) # 新增group列 转置后的表达矩阵 2.2 宽数据转换长数据 宽数据是比较常用的数据收集与储存样式,而长数据常用于画图,此处我们采用pivot_longer()进行转换

    3.5K20

    R语言基础5(绘图基础)

    str_detect(x,"h")##是否含有关键词h,生成与X长度相等的逻辑值向量,可用于向量取子集; str_detect(x,"h|s")##是否含有关键词h或者s,生成与X长度相等的逻辑值向量...,可用于向量取子集; str_starts(x,"h")##是否以h开头,生成与X长度相等的逻辑值向量,可用于向量取子集; str_ends(x,"h")##是否以h结束,生成与X长度相等的逻辑值向量,...可用于向量取子集; str_replace(x,"o","a")#将x中的o替换为a,只替换出现的第一个o; str_replace(x,"o|s","a")#将x中的o或者s替换为a,只替换出现的第一个...o; str_replace_all(x,"o","a")#将x中的o替换为a,替换所有的o; str_remove(x," ")##将x中的第一个空格删除; str_remove_all(x," ")...)) #从大到小 # distinct,数据框按照某一列去重复 distinct(test,Species,.keep_all = T)##将Species列去重复,保留所有列; # mutate,

    1.3K71

    tidyverse数据清洗案例详解

    介绍 本中你将学习在R中数据处理简洁的方法,称为tidy data。将数据转换为这种格式需要一些前期工作,但这些工作从长远来看是值得的。...一旦你有了整洁的数据和一些包提供的整洁工具,您将花费很少时间将数据从一种表示转换到另一种,从而可以将更多的时间花在分析问题上。 本文将为您提供整理数据的实用介绍以及tidyr包中附带的工具。...我们知道单元格代表案件数,因此我们将变量数存储在cases中,并用na.rm去除含有缺失值的行。这里使用pivot_longer()将数据变长,具体见后面函数详情。...– 64岁 65 = 65岁或以上 替换数据 我们需要对列名称的格式进行较小的修正:将new_rel替换为newrel(很难在这里找到它,但是如果您不修正它,我们将在后续步骤中出错)。...pivot_longer()、poivot_wider() pivot_longer() 将在列中列名(数值)转换到一列上。

    2.2K10

    5R语言综合运用

    (排序的是整个数据框),所以不用sort(只能一列向量) #注释order()函数只能用于向量和数组,而不能用于数据框。...R语言中,select函数用于选择数据框中的列,可以使用列名或者向量来指定要选择的列。...例如,若要选择数据框df中的列x和y,可以使用以下代码:library(dplyr),df 函数用于筛选数据框中的行,它接受一个逻辑条件作为参数,返回符合条件的行...这两个函数都用于将字符串转换为小写字母,但是它们有以下区别:库依赖:str_to_lower()需要先安装和加载stringr包,而tolower()是R的内置函数,不需要任何额外的库。...总的来说,两个函数都可以用于将字符串转换为小写字母,但str_to_lower()更具特定性,而tolower()则更通用且直接可用。

    3.2K00

    decoupleR:一站式scRNA通路活性分析及转录因子活性推断

    decoupleR是提供了一套统一框架下的多种计算方法,用于从组学数据中推断和提取生物学活性的R包。能够进行转录组数据通路活性分析以及转录因子活性分析。...这些基因与任何统计方法相结合,可用于从总体或单细胞转录组学中推断通路活性。也就是说,PROGENy是基于先验知识的总结,是一个综合资源库,其中包含经过整理的通路及其目标基因,以及每个相互作用的权重。...在decoupleR中,可以使用get_progeny()函数获取资源数据,用于下游的分析推断。获取的内容是一个dataframe,包括source pthway,target gene,权重及P值。...', #输入net中的权重列 minsize = 5) 将结果返回seurat:分析得到的acts是一个长数据,将其转化为宽数据矩阵,添加到seurat...转录因子合集可以通过decoupleR函数get_collectri进行获取,其中参数split_complexes 用于保留复合物或将其拆分为亚基,默认情况下,建议保留复合物。

    28510

    R语言进阶笔记4 | dplyr 汇总统计

    模拟数据 首先,我模拟一个20行5列的数据框,每一列都是数值的数据类型。...然后使用apply函数,对数据框的列进行操作 最后返回汇总统计的结果 该函数的对象为一个由变量组成的数据框,数据类型都要是数值 3.2 函数测试 > huizong(dat) Max...4.1 编写函数 处理流程: 首先定义一个func函数,计算相关的汇总参数 使用summarise_if 函数,或者summarise_all函数,计算汇总统计 使用t()进行转置 使用as.data.frame...y1,y2,y3,y4,y5的汇总统计结果,所以将其转化为数据,使用tidyr中的pivot_longer进行转化: > d1 = pivot_longer(dat,1:5,names_to = "Trait...更上一层楼 使用summarise_at函数,然后使用list将函数合并在一起: d1 %>% group_by(Trait) %>% summarise_at(vars(values), list

    1.5K10

    tidyverse:R语言中相当于python中pandas+matplotlib的存在

    从文件中读取数据 purrr:(提供好用的编程函数 tibble:data.frame升级款 stringr:处理字符,查找、替换等 forcats:处理因子问题 ?...iris数据用于管道后面的head函数。...tidyr包的下述四个函数用法 5.1 宽数据转为长数据:gather (excel透视表反向操作) 5.2 长数据转为宽数据:spread (excel透视表功能) 5.3 多列合并为一列:unit...5.4 将一列分离为多列:separat #install.packages("tidyr") #安装tidyr包 library(tidyr) 5.1 宽数据转为长数据:gather() ?...()函数可将一列拆分为多列,一般可用于日志数据或日期时间型数据的拆分,语法如下: #separate(data, col, into, sep = “[^[:alnum:]]+”, remove = TRUE

    7K10

    从零开始的异世界生信学习 R语言部分 06 R应用专题

    list,使用下标循环,可以将每次循环的结果都保存到列表中 ## cbind 按列拼接 a = rnorm(10) b = 1:10 cbind(a,b) ##do.call() 函数是对列表 list...操作的函数,批量操作 图片 图片 分批次将运行结果保存为R.data格式便于管理数据 图片 大段代码暂时不运行可以进行折叠,并加入一个if 判断或者注释掉 表达矩阵箱线图 表达矩阵 R 语言作图要求将宽数据的表达矩阵转变成长数据后昨天...) library(tibble) library(dplyr) dat = t(exp) %>% #转置表达矩阵,宽表变长表 as.data.frame() %>% #将表达矩阵转换为数据框...##最终生成作图过程中间的转换的数据框dat 图片 pdat = dat%>% pivot_longer(cols = starts_with("gene"), ##选择那几列的列名合成在一起组成新的一列...,矩阵和数据框的隐式循环,只能用于数据框以及矩阵 apply优点在于可以应用自定义函数 ### 1.apply 处理矩阵或数据框 #apply(X, MARGIN, FUN, …) #其中X是数据框

    3.6K30

    R数据科学-2(tidyr)

    R数据科学-2 是用于清洗数据的工具,如dplyr一样,其中每一列都是变量,每一行都是观察值,并且每个单元格都包含一个值。...“ tidyr”包含用于更改数据集的形状(旋转)和层次结构(嵌套和“取消嵌套”),将深度嵌套的列表转换为矩形数据框(“矩形”)以及从字符串列中提取值的工具。...它还包括用于处理缺失值(隐式和显式)的工具。 今天就介绍以下在数据清洗工作时,经常会遇到三个问题: `1....,spread函数涉及2个参数 df %>% spread(key, value) image.png 重复列变量 有时候会碰到,需要新增一列是重复该变量的多少次,如上述例子中, 上海id=1的有...在tidyr中很简单的uncount函数就可以实现: uncount(data, weights, .remove = TRUE, .id = NULL) df_c=df_a %>% filter(!

    1.5K20
    领券