R中unlist函数的使用
买的书里面实例讲的不清不楚,所以看帮助文档了
用法:unlist(x, recursive = TRUE, use.names = TRUE)
帮助文档讲x可以是向量或者列表,如果是向量,则原样返回,尝试下,确实如此,向量并不是典型的用法。
> x<-c(1,2,3)
> unlist(x)
[1] 1 2 3
> names(x)<-c("first","second","third")
> x
first second third
1 2 3
> unlist(x)
first second third
1 2 3
> unlist(x,use.names=F)
first second third
1 2 3
> unlist(x,recursive=FALSE)
first second third
1 2 3
如果使用列表,一般情况下,如果recursive = FALSE,则unlist只会作用于列表的第一层,向量(矩阵看成有维度的向量,应该相同处理)元素会取出向量的单个值作为unlist后的项,列表元素(数据框作为特殊列表?)则取出列表元素的组成作为项。use.names = FALSE,则是否使用元素名称,命名方法为元素名称(.下一层元素名称)+1,2,3组成,从列到行读取数据,无名称则对应向量名称为空。数字会适应统一类型可能转变为字符。
如果元素是因子,则返回的值为因子对应的1,2,3,4水平。names, formulas and calls这些列表元素返回的很可能还是列表,另论。
> y<-list(name=c("peter","john","mike"),ages=c(24,35,68),c(88,99),am=list(try=c(1,2),uk=matrix(1:6,2,3))
+ )
> y
$name
[1] "peter" "john" "mike"
$ages
[1] 24 35 68
[[3]]
[1] 88 99
$am
$am$try
[1] 1 2
$am$uk
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
> unlist(y)
name1 name2 name3 ages1 ages2 ages3 am.try1 am.try2 am.uk1 am.uk2 am.uk3 am.uk4 am.uk5 am.uk6
"peter" "john" "mike" "24" "35" "68" "88" "99" "1" "2" "1" "2" "3" "4" "5" "6"
> unlist(y,use.names=FALSE)
[1] "peter" "john" "mike" "24" "35" "68" "88" "99" "1" "2" "1" "2" "3" "4" "5" "6"
> unlist(y,recursive=FALSE)
$name1
[1] "peter"
$name2
[1] "john"
$name3
[1] "mike"
$ages1
[1] 24
$ages2
[1] 35
$ages3
[1] 68
[[7]]
[1] 88
[[8]]
[1] 99
$am.try
[1] 1 2
$am.uk
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
> unlist(y,recursive=FALSE,use.names=FALSE)
[[1]]
[1] "peter"
[[2]]
[1] "john"
[[3]]
[1] "mike"
[[4]]
[1] 24
[[5]]
[1] 35
[[6]]
[1] 68
[[7]]
[1] 88
[[8]]
[1] 99
[[9]]
[1] 1 2
[[10]]
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
> y$fc<-factor(c("a","b","a","c","b"))
> y$fc2<-factor(c("jj","kk","jj"))
> y
$name
[1] "peter" "john" "mike"
$ages
[1] 24 35 68
[[3]]
[1] 88 99
$am
$am$try
[1] 1 2
$am$uk
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
$fc
[1] a b a c b
Levels: a b c
$fc2
[1] jj kk jj
Levels: jj kk
> unlist(y)
name1 name2 name3 ages1 ages2 ages3 am.try1 am.try2 am.uk1 am.uk2 am.uk3 am.uk4 am.uk5 am.uk6 fc1
"peter" "john" "mike" "24" "35" "68" "88" "99" "1" "2" "1" "2" "3" "4" "5" "6" "1"
fc2 fc3 fc4 fc5 fc21 fc22 fc23
"2" "1" "3" "2" "1" "2" "1"
> z<-list(add=factor(c("a","d","a")),add1=factor(c("a","b","c","d","a")),FB=list(bd=c("33","66"),c(8,9)))
> unlist(z)
add1 add2 add3 add11 add12 add13 add14 add15 FB.bd1 FB.bd2 FB3 FB4
"1" "2" "1" "1" "2" "3" "4" "1" "33" "66" "8" "9"
R中unlist函数的使用的更多相关文章
- R中rep函数的使用
官方帮助文档如下写的: Usage rep(x, ...) rep.int(x, times) rep_len(x, length.out) Arguments x a vector (of any ...
- R中的par()函数的参数
把R中par()函数的主要参数整理了一下(另外本来还整理了每个参数的帮助文档中文解释,但是太长,就分类之后,整理为图表,excel不便放上来,就放了这些表的截图)
- R中实现脚本调用,以及函数调用
R中实现脚本调用,以及函数调用 这里的列子是test.R调用mysql_con.R中的函数 mysql_con.R # 使用RMySQL操作数据库 # 载入DBI和RMySQL包 #library(D ...
- [R]在dplyr函数的基础上编写函数-(3)tidyeval
dplyr的优点很明显,数据框操作简洁,如filter(df, x == 1, y == 2, z == 3)等于df[df$x == 1 & df$y ==2 & df$z == 3 ...
- R中的apply族函数和多线程计算
一.apply族函数 1.apply 应用于矩阵和数组 # apply # 1代表行,2代表列 # create a matrix of 10 rows x 2 columns m <- ma ...
- R中的name命名系列函数总结
本文原创,转载请注明出处,本人Q1273314690 R中关于给行列赋名称的函数有 dimnames,names,rowname,colname,row.names 这五个函数,初学的时候往往分不清楚 ...
- 总结——R中查看属性的函数
本文原创,转载注明出处,本人Q1273314690 R中知道一个变量的主要内容和结构,对我们编写代码是很重要的,也可以帮我们避免很多错误. 但是,R中有好几个关于属性查看的函数,我们往往不知道什么时候 ...
- j解决sparkr中使用某些r的原生函数 发生错误Error: class(objId) == "jobj" is not TRUE的问题
Create table function in Spark in R not working João_Andre (3) 询问的问题 | 2016年12月10日 06:03BLUEMIXRSPA ...
- R中的sample函数
今天介绍一些运算函数,它们的使用很简单,没有什么难度,但是也会用的着. 在医学统计学或者流行病学里的现场调查.样本选择经常会提到一个词:随机抽样.随机抽样是为了保证各比较组之间均衡性的一个很重要的方法 ...
随机推荐
- Unity3D架构之PureMVC
之前了解过UI实现框架大多是用MVC架构的,才听说有这么一个基于MVC的跨平台开源框架叫PureMVC,前几天用到了做了一下,写一写分析总结官网位置:http://puremvc.org/ PureM ...
- upc 组队赛18 STRENGTH【贪心模拟】
STRENGTH 题目链接 题目描述 Strength gives you the confidence within yourself to overcome any fears, challeng ...
- 云计算+区块链=BaaS
云计算+区块链=BaaS 本文来自于:https://www.toutiao.com/i6540096399017509389/ 云计算和区块链的区别 云计算现在已经是一个成熟的技术和应用了,美国国家 ...
- PHP日期加减函数
<?phpecho "今天:",date('Y-m-d H:i:s'),"<br>";echo "明天:",date('Y ...
- Day10---Python的jieba库
jieba库:中文分词第三方库 jieba.lcut(s) jieba.lcut(s,cut_all=true) jieba.lcut_for_search(s)
- [fw]Linux系统使用time计算命令执行的时间
Linux系统使用time计算命令执行的时间 当测试一个程序或比较不同算法时,执行时间是非常重要的,一个好的算法应该是用时最短的.所有类UNIX系统都包含time命令,使用这个命令可以统计时间消耗.例 ...
- NGUI的Lebal需注意问题
1,为什么调节字体大小时,字体大小没变化,我们需要调节两个地方,如下图框柱显示 调节font size和size才可以同时控制字体的大小 2,label有时是不支持输入中文,但是支持复制进去,则这时我 ...
- 关于行内元素,内联元素before和after的大小设置问题
:before /:after伪元素默认是一个行内元素,所以这个元素设置width/height是无效的
- vsftpd.service: Main process exited, code=exited, status=2/INVALIDARGUMENT和vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()错误的解决方法
今天在配置VSFTPD过程中遇到两个错误 1是启动失败,通过 SERVICE VSFTPD STATUS 查看到报错 May 02 16:06:58 debian systemd[1]: Starti ...
- 第十五章 Kubernetes调度器
一.简介 Scheduler 是 kubernetes 的调度器,主要的任务是把定义的 pod 分配到集群的节点上.听起来非常简单,但有很多要考虑的问题: ① 公平:如何保证每个节点都能被分配资源 ② ...