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函数
今天介绍一些运算函数,它们的使用很简单,没有什么难度,但是也会用的着. 在医学统计学或者流行病学里的现场调查.样本选择经常会提到一个词:随机抽样.随机抽样是为了保证各比较组之间均衡性的一个很重要的方法 ...
随机推荐
- Hadoop(2): Blocks存储管理及读写
1. Replication: 因为每个HDFS被部署在是低成本的商业硬件上(low cost commodity hardware),所以为了有更佳的Fault Tolerance,HDFS将每个B ...
- Vulnhub渗透测试练习(一) ----------Breach1.0
教程网址 https://www.freebuf.com/articles/system/171318.html 学习经验总结 1.使用jre的bin目录下的keytool命令来输入秘钥库口令进而获取 ...
- springboot异步任务、定时任务
打开浏览器 http://localhost:8080/hello ,连续刷新可以看到不会 等待 3秒时间了,pom.xml controller service 代码如下. -----------S ...
- 【五一qbxt】day6 OI中的stl
from:why 很多很多part…… 1.pair: 相当于把两个变量放在一起: #include<utility> using namespace std; pair<TypeN ...
- 简单写入excel
import pymysql,xlwt def to_excel(table_name): host, user, passwd, db = '127.0.0.1', 'root', '123', ' ...
- php 模拟登陆(不带验证码)采集数据
这里模拟表单登陆窗口 提交代码部分 1,生成session_id保存到 cookie $login_url = 'http://www.96net.com.cn/Login.php';$cookie_ ...
- A Bug’s Life POJ - 2492(种类并查集)
题目链接 每次给出两个昆虫的关系(异性关系),然后发现这些条件中是否有悖论 就比如说第一组数据 1 2 2 3 1 3 1和2是异性,2和3是异性,然后说1和3是异性就显然不对了. 我们同样可以思考一 ...
- 使用join和CountDownLatch来等待线程结束
1.join方法的实现 join只能在start()之后调用, join 某个线程A,会使当前线程B进入等待,直到线程A结束生命周期(isAlive()==false) ,或者达到给定的时间. 在此期 ...
- rtp/rtcp
rtp/rtcp stack custom rtp ORTP UCL Common RTP library Bell Labs RTP Library jrtplib 1.custom rtp sen ...
- Kvm --01 虚拟化基础概念
目录 1. 虚拟化基础概念 01. 什么是虚拟化? 02. 为什么要用虚拟化? 03. 虚拟化在企业中的应用场景? 04. 虚拟化软件介绍 05. Kvm介绍 2. 安装部署Kvm 3. Kvm虚拟机 ...