R入门小练习(1)

今日: sapply() 、apply()、 list与向量的区别
用昨天的例子,

一、sapply() 、apply()
先做 name 的分词,看一下list和unlist在用sapply()做分词的区别

>name <- strsplit(StuName," ")--列表格式
>name1 <- unlist(strsplit(StuName," "))--非列表
>firstname <- sapply(name,"[",1)   
>firstname  --列表格式的分词后结果
 [1] "John"   "Angela" "Bull"   "Cheryl" "Reuven" "Joel"   "Mary"   "Greg"   "Brad"   "Tracy" 
> firstname1 <- sapply(name1,"[",1)
> firstname1 --非列表
      John      Davis     Angela   Williams       Bull      Jones     Cheryl    Cushing     Reuven 
    "John"    "Davis"   "Angela" "Williams"     "Bull"    "Jones"   "Cheryl"  "Cushing"   "Reuven" 
   Ytzrhak       Joel       Knox       Mary    Rayburn       Greg    England       Brad       Tmac 
 "Ytzrhak"     "Joel"     "Knox"     "Mary"  "Rayburn"     "Greg"  "England"     "Brad"     "Tmac" 
     Tracy    Mcgrady 
   "Tracy"  "Mcgrady" 
>lastname <- lapply(name,"[",2)

在R语言中,有下面三种操作符可以提取对象的子集:

“[”通常返回的对象与原对象的类型相同;它也可以返回一个对象中的多个元素
“[[”用来从列表(list)或数据框(data.frame)中提取对象;也可从列表或数据框中提取单个元素,且返回对象的类型可以不为列表和数据框。
“$”可以通过名称从列表和数据框中提取元素;如果仅从抽取元素的角度来看,和“[[”没有区别
疑问:看不懂firstname1 的展示结果,像是给”分词”后的每一个“列”都起了名字

合并,

>student <-data.frame(Stuld,firstname,lastname,Math,Science,English)
>student
   Stuld firstname lastname Math Science English
1      1      John    Davis  502      95      25
2      2    Angela Williams  465      67      12
3      3      Bull    Jones  621      78      22
4      4    Cheryl  Cushing  575      66      18
5      5    Reuven  Ytzrhak  454      96      15
6      6      Joel     Knox  634      89      30
7      7      Mary  Rayburn  576      78      37
8      8      Greg  England  421      56      12
9      9      Brad     Tmac  599      68      22
10    10     Tracy  Mcgrady  666      10      38

二、list
列表(list)是一种特殊的向量,list可以包含不同类型的对象,甚至包括向量对象和矩阵对象等。列表中每个对象之间用逗号隔开,每个对象索引号用双“[[]]”表示,而每个对象中的元素用单“[]”表示

> mylist<-list(c(1:3),c('A','B'))
> mylist
[[1]]
[1] 1 2 3

[[2]]
[1] "A" "B"

> mylist1<-list(a=c(1:3),b=c('A','B'))--给列表的“列”命名
> mylist1
$a
[1] 1 2 3

$b
[1] "A" "B"

> mylist[1]--访问元素1
[[1]]
[1] 1 2 3

> mylist[2]
[[1]]
[1] "A" "B"

> mylist[[1]]--访问索引1
[1] 1 2 3
> mylist[1:3]--这个就不理解了。。
[[1]]
[1] 1 2 3

[[2]]
[1] "A" "B"

[[3]]
NULL
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值