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

R编程(二:基本数据类型及其操作之因子、矩阵、数据框和列表)

类型的类属依次为tbl_df, tbl, data.frame,用as_tibble()可以将一个数据框转换为tibble,或者直接通过tibble 像创建数据框般创建tibble 数据框: t.bp...另外,tibble类型允许其中的列是列表类型, 这样, 该列的每个元素就可以是复杂类型, 比如建模结果(列表), 元素之间可以保存不等长的值。...R lists 一个R的列表包括了各种类型的变量,并将他们放置在同一个列表当中,这些变量可以是矩阵、向量、数据集,甚至是其他的列表。...列表的提取也可以按照类似数据框的方式提取。、 需要注意的是,列表用一个中括号提取内容,会返回一个列表,列表中包含提取的内容,只有用两个中括号,才会返回该内容本来的格式。...新建一个list my_list 长度的空列表my_list <- vector("list",

2.8K20

R数据科学整洁之道:使用 tibble 实现简单数据框

tidyverse 中许多函数都可以创建 tibble,因为 tibble 是 tidyverse 的标准功能之一。 可以通过 tibble() 函数使用一个向量来创建新 tibble。...tibble() 会自动重复长度为 1 的输 入,并可以使用刚刚创建的新变量,如下所示: library(tidyverse) tibble( x = 1:5, y = 1, z = x ^ 2...data.frame() 函数功能要少得多:它不能改变输入的类型(例如,不能将字符串转换为因子)、变量的名称,也不能创建行名称。...创建 tibble 的另一种方法是使用 tribble() 函数,tribble 是 transposed tibble(转置 tibble) 的缩写。...最后总结 tibble 相对于数据框来说,更简单,但更方便使用,两者的主要区别是: tibble 不能创建行名。 tibble 不能改变输入的类型(例如,不能将字符串转换为因子)、变量的名称。

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

    「R」用purrr实现迭代

    每种类型的输出都有一个相应的函数: map()用于输出列表 map_lgl()用于输出逻辑型向量 map_dbl()用于输出双精度型向量 map_chr()用于输出字符型向量 每个函数都使用一个向量(注意列表可以作为递归向量看待...)作为输入,并对向量的每个元素应用一个函数,然后返回和输入向量同样长度的一个新向量。....- attr(*, "class")= chr [1:3] "simpleError" "error" "condition" 如果将以上结果转换为2个列表,一个列表包含所有错误对象,另一个列表包含所有原始结果...因为长度都相同,所以将各个参数保存在一个数据框中: params = tibble::tribble( ~mean, ~sd, ~n, 5, 1, 1, 10, 5, 3,...本节就是对它们进行简单介绍 预测函数 一些函数可以与返回TRUE或FALSE的预测函数一同使用。

    4.8K20

    R 数据整理(十一: 用purrr包实现更花样的匿名函数使用)

    提取列表元素的简写 map 除了调用无名函数时可以简写,在提取列表元素时也有简写的方法。 较为复杂的数据, 有时表现为列表的列表, 每个列表元素都是列表或者向量。...JSON、YAML等格式转换为R对象就经常具有这种嵌套结构。一般这种类型的数据,导入的R 后就表现为嵌套列表的格式,也就是列表中的每个元素也都是列表。...purrr包的pmap类函数支持对多个列表、数据框、向量等进行向量化处理。pmap不是将多个列表等作为多个自变量, 而是将它们打包为一个列表。...reduce2 reduce2(x, y, f) 中的x是要进行连续运算的数据列表或向量, 而y是给这些运算提供不同的参数。...将数据分散存储在不同计算节点中, 将需要的操作先映射到每台计算节点, 进行信息提取压缩, 最后用reduce的思想将不同节点的信息整合在一起。 6.

    2.6K30

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

    cols: 要转换为更长格式的列。...names_to:一个字符向量,指定要根据存储在 cols 指定的数据的列名中的信息创建一个或多个新列。如果长度为 0,或者如果提供了 NULL,则不会创建任何列。...如果长度为 1,将创建一个包含 cols 指定的列名的列。如果长度>1,将创建多个列。在这种情况下,必须提供 names_sep 或 names_pattern 之一来指定如何拆分列名。...names_sep 采用与单独()相同的规范,可以是数字向量(指定要中断的位置),也可以是单个字符串(指定要拆分的正则表达式)。...原型(或简称 ptype)是一个零长度向量(如 integer() 或 numeric()),它定义了向量的类型、类和属性。如果您想确认创建的列是您期望的类型,请使用这些参数。

    6.8K30

    Day07 生信马拉松-数据整理中的R

    全文并非是对数据整理的实操整理,主要整理在数据整理/清洗中常用的R包介绍 library(tidyr) library(dplyr) library(stringr) library(tibble) 1...(x," ")) x2 = str_split(x," ")[[1]];x2 #向量长度仅为1,因此用[[1]] x2为字符型向量 ################################...输出逻辑向量 str_ends(x2,"e") #判断x2中e结尾的字符串,输出逻辑向量 1.5 字符串替换 x2 str_replace(x2,"o","A") #每个元素里面只替换第一次出现的目标字符...### ggplot2 分面相关设置(facet)详解 7.一些实操中的便捷函数 7.1 match() 函数 load("matchtest.Rdata") x y ## 把y的列名正确替换为x里面的...#是b的下标,可以给b取子集,也可以给与b对应的其他向量取子集。

    23900

    生信马拉松 Day7

    ;x 1.1 检测字符串长度 str_length(x) #注意包括空格,空格也算一个 #[1] 42 length(x) #算的是向量有多少个元素 #[1] 1 1.2 字符串拆分 str_split...(x1) #转matrix x3 = head(x2,50) #只要前50行 pheatmap::pheatmap(x3) #画热图 #使用管道符%>%的代码 iris %>% select(-5...,不可以是多个逻辑值组成的向量 } #if+else的格式 if (){ }else{ } #ifelse的格式 ifelse( , ,) #第一个逗号前是逻辑值 #for的格式 for(){.../向量中的每个元素实施相同的操作 lapply(1:4,rnorm) #=rnorm(1),rnom(2),rnorm(3),rnom(4),得到一个分别是1/2/3/4个元素的list 5.join...2种方法 2.如何把数据框某列的“ ”转换为NA iris$Species[iris$Species=='']=NA 3.如何删除多余的信息 #这里示例数据中,a$tumor_stage.diagnoses

    25300

    生信技能树- R语言-day7

    TURE,生成长度相等的逻辑值向量,可以用来取子集,可以提出来含有h的地雷str_starts(x2,"T") #是否以t开头str_ends(x2,"e")#是否e结束5.字符串替换x2str_replace...个head 取头几个tail 取尾巴的几个还没做思考题:如何跳出一个表达矩阵里方差最大的1000个基因思考题:取出大于1的所有行向量/列表的隐式循环-lapplylapply(list, FUN, …)...对列表/向量中的每个元素实施相同的操作lapply(1:4,rnorm)两个数据框的链接merge可以合并inner_join:交集都存在的取inner_join(test1,test2,by="name...先转置3. 把行名变成一列4. “宽”变成“长”把格式变成类似于 ggplot2的形式,一列作为x,一列作为y5....1exp数据框如下library(tidyr)library(tibble)library(dplyr)dat = t(exp) %>% # 赋值dat,然后进行转置as.data.frame() %>

    10400

    2023.4生信马拉松day7-R语言综合应用

    ) library(tibble) 专题1 玩转字符串★★★ stringr包含几十个函数,本节课主要讲以下6个: 图片 1. str_length() 检测字符串长度 str_length()数的是引号里面有多少个字母...str_length(x) length(x) 2. str_split(字符串,"拆分符号") 拆分字符串 图片 -(1)拆分之后成为了了列表,列表的每个元素对应原来的每个元素拆分的结果 -(2)列表使用不方便...-(3)yes:逻辑值为TRUE时的返回值 -(4)no:逻辑值为FALSE时的返回值 -(5)支持单个的逻辑值,也支持多个逻辑值组成的向量 -(6)相当于对向量的每个元素逐个进行判断,然后对判断结果...#处理数据 library(tidyr) library(tibble) library(dplyr) dat = t(exp) %>% #转置 as.data.frame() %>% #...如何挑出30个数里最大的五个 -(1)排序 -(2)取最后五个 图片 3.向量/列表的隐式循环-lapply() 对列表/向量中的每个元素实施相同的操作 lapply(1:4,rnorm) #批量画图

    3.6K80

    R不规则数据长变宽

    交流群看到小伙伴提问:有一个数据,大概如下所示 : a a b a c a b c c c a 1 3 3 3 2 5 7 2 1 9 8 想要转换为如下格式: a b c 1 3 2 3 3 2 3...1 5 9 8 我看了看,大概是提问的小伙伴自己没搞清楚自己想要什么,他自己给出来了一个非常丑陋的解决方案, 他实现如下: #生成长度不等的list (猜测可以直接生成最长长度的data.frame...: $a [1] "1" "3" "3" "5" "8" $b [1] "3" "7" $c [1] "2" "2" "1" "9" 但是提问的小伙伴把需求搞复杂了,生成了列表之后一定要变成数据框...) %>% spread(x, y) %>% select(-id) 得到,如下所示: # A tibble: 5 × 3 a b c 的知识点路线图如下: 了解常量和变量概念 加减乘除等运算(计算器) 多种数据类型(数值,字符,逻辑,因子) 多种数据结构(向量,矩阵,数组,数据框,列表) 文件读取和写出 简单统计可视化

    59730

    R语言 数据框、矩阵、列表的创建、修改、导出

    )colnames(soft)#为了更为方便地处理,可以将不同类型的文件建设文件夹放在Rproject下,读取的时候只需按文件目录的格式输入文件夹名后Tab即可找到#如a的所有内容,同df1$df1[c(1,3),1:2] #取出第1、3行的1、2列数据,取多列的时候需要组织成合适的向量df1[,-ncol(df1)] #删去最后一列,"-"意义同向量列名或行名取子集...] #取出列为score的向量中值大于0的数据对应的行#筛选score > 0的基因df1[df1$score > 0,1] #df1$score > 0生成一个长度与df对应的逻辑值向量,取出行为TRUE...#取子集方法同数据框t(m) #转置行与列,数据框转置后为矩阵as.data.frame(m) #将矩阵转换为数据框列表列表内有多个数据框或矩阵,可通过list函数将其组成一个列表l 的重要性#再次说明1:5可以换为1:nrow(a)# 4.探索列表取子集l[2]

    7.9K00

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

    .检测字符串长度 str_length(x) #计算字符串中有多少字符 length(x) #计算向量中元素的个数 图片 图片 2. str_split 字符串拆分 x <- "The birch...canoe slid on the smooth planks." x ### 2.字符串拆分 str_split(x," ") #函数将一个向量拆分成一个列表了 x2 = str_split(x,"...) library(dplyr) dat = t(exp) %>% #转置表达矩阵,宽表变长表 as.data.frame() %>% #将表达矩阵转换为数据框 rownames_to_column...apply(test, 1, sum) ##对test数据框的每一行求和 图片 图片 ### 2.lapply(list, FUN, …) # 对列表/向量中的每个元素(向量)实施相同的操作...test <- list(x = 36:33,y = 32:35,z = 30:27);test #返回值是列表,对列表中的每个元素(向量)求均值(试试方差var,分位数quantile) lapply

    2.5K30

    R语言-专题

    x### 1.检测字符串长度str_length(x)length(x) #返回字符串的个数2.str_splitsplit返回列表,但是列表不能进行计算,对列表进行取子集### 2.字符串拆分str_split...)library(dplyr)dat = t(exp) %>% #转置 as.data.frame() %>% rownames_to_column() %>% #rownames变成一列...10个数a= norm(100)tail(sort(a),10)2.列表的隐式循环—lapply输入数据是列表,输出数据也是列表### 2.lapply(list, FUN, …) # 对列表/向量中的每个元素...(向量)实施相同的操作test 列表,对列表中的每个元素(向量)求均值(试试方差var,分位数quantile...)lapply(test,mean)lapply(test,fivenum)3.列表的隐式循环—sapply返回值为矩阵或向量### 3.sapply 简化结果,返回矩阵或向量sapply(test,mean

    1.7K00

    R数据科学整洁之道:使用tidyr进行长宽数据转换

    整洁数据(tidy data)是指如下图这样的数据表: 在表中: 每个变量都拥有自己的列 每个观察/样本都拥有自己的行 数据这样组织有两个明显的好处:既方便以向量的形式访问每一个变量,也方便变量之间进行向量化运算...FALSE, values_ptypes = NULL, values_transform = NULL, ... ) 创建一个宽表: library(knitr) tb_wide = tibble...tb_long) country year cases A 1999 0.7k A 2000 2k B 1999 37k B 2000 80k C 1999 212k C 2000 213k 长数据转宽数据...tidyr中的pivot_wider与pivot_longer的操作正好相反,可以将长数据转换为宽数据。...最后总结 tidyr包最重要的两个函数是: pivot_longer,将宽数据转换为长数据,就是将很多列变成两列。 pivot_wider,将长数据转换为宽数据,就是将两列变成很多列。

    3.8K30
    领券