买的书里面实例讲的不清不楚,所以看帮助文档了

用法: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函数的使用的更多相关文章

  1. R中rep函数的使用

    官方帮助文档如下写的: Usage rep(x, ...) rep.int(x, times) rep_len(x, length.out) Arguments x a vector (of any ...

  2. R中的par()函数的参数

    把R中par()函数的主要参数整理了一下(另外本来还整理了每个参数的帮助文档中文解释,但是太长,就分类之后,整理为图表,excel不便放上来,就放了这些表的截图)

  3. R中实现脚本调用,以及函数调用

    R中实现脚本调用,以及函数调用 这里的列子是test.R调用mysql_con.R中的函数 mysql_con.R # 使用RMySQL操作数据库 # 载入DBI和RMySQL包 #library(D ...

  4. [R]在dplyr函数的基础上编写函数-(3)tidyeval

    dplyr的优点很明显,数据框操作简洁,如filter(df, x == 1, y == 2, z == 3)等于df[df$x == 1 & df$y ==2 & df$z == 3 ...

  5. R中的apply族函数和多线程计算

    一.apply族函数 1.apply  应用于矩阵和数组 # apply # 1代表行,2代表列 # create a matrix of 10 rows x 2 columns m <- ma ...

  6. R中的name命名系列函数总结

    本文原创,转载请注明出处,本人Q1273314690 R中关于给行列赋名称的函数有 dimnames,names,rowname,colname,row.names 这五个函数,初学的时候往往分不清楚 ...

  7. 总结——R中查看属性的函数

    本文原创,转载注明出处,本人Q1273314690 R中知道一个变量的主要内容和结构,对我们编写代码是很重要的,也可以帮我们避免很多错误. 但是,R中有好几个关于属性查看的函数,我们往往不知道什么时候 ...

  8. 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 ...

  9. R中的sample函数

    今天介绍一些运算函数,它们的使用很简单,没有什么难度,但是也会用的着. 在医学统计学或者流行病学里的现场调查.样本选择经常会提到一个词:随机抽样.随机抽样是为了保证各比较组之间均衡性的一个很重要的方法 ...

随机推荐

  1. jmeter之断言的使用

    和写功能测试用例一样,写接口测试用例也可以先可以写预期结果,然后用于后面的批量执行接口用例 目录 1.jmeter常用的断言元件 2.响应断言 3.json串断言 1.jmeter常用的断言元件 jm ...

  2. WPF国际化方式1之资源文件

    先看效果吧,个人觉得由于MVVM模式的UI响应属性变化的特殊机制,资源文件和内存数据都是国际化不错的选择. 1.首先准备两个资源文件用来做中文和英文的转换使用,将程序中需要转换语言都弄成两个版本,分别 ...

  3. 【python】 判断纯ascii串

    参考:http://stackoverflow.com/questions/3636928/test-if-a-python-string-is-printable print all(ord(c)& ...

  4. C#联接序列

    1.  Concat() – 串联序列(有重复项) var healthFoods = new List<string> { "fruits", "veget ...

  5. (Vue)移动端点击输入框,弹出键盘,底部被顶起问题

    (Vue)移动端点击输入框,弹出键盘,底部被顶起问题:https://www.jianshu.com/p/210fbc846544 问题描述:Vue开发中,当我们相对于父视图的底部布局子控件时,需要用 ...

  6. oracle用户权限管理

    oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权 1.查看当前数据库所有用户: select * from all_users; 2.查看表所支持的权限: select ...

  7. python eval( ) 使用详解

      1.解析表达式 (表达式是str类型)----最常用     a = 12     b = "联播"     result1 = eval(a+3)        # resu ...

  8. 关联查询总结,left join 和 inner join 区别和优化

    left join 是做左外关联,主表内容都会显示:符合关联条件的附表内容才会显示出来. inner join 是内关联,没有主表附表的概念:两个表中,同时符合关联条件的数据才会显示出来. left ...

  9. XSS——跨站脚本攻击

    跨站点脚本攻击:通过对网页注入恶意脚本,成功地被浏览器执行,来达到攻击的目的. 一.XSS攻击类型与原理1. 反射型XSS攻击非持久性攻击,黑客使用社交性的交互技巧诱导用户点击访问目标服务器的链接,但 ...

  10. asp.net 连续打印多份HTML页面,出现漏字

    在IE8上打印的内容用了CSS 样式,连续打印多份导致的 可以通过改变CSS样式或更换浏览器解决