学习小组Day5笔记--尤书书

Day5-数据结构.png

(1)显示工作路径 getwd()
(2)要理解其中的命令、函数的意思。函数或者命令不会用时,除了百度/谷歌搜索以外,用这个命令查看帮助:?read.table,调出对应的帮助文档,翻到example部分研究一下。
(3)数据类型
向量(vector)👈重要(向量是由元素组成的,元素可以是数字或者字符串。);
数据框(Data frame)👈重要(表格在R语言中改名叫数据框);
矩阵(Matrix)
数组(Array)

向量

标量:一个元素组成的变量
向量:多个元素组成的变量(有序排列)

赋值

> x <- c(1,2,3) #常用的向量写法,意为将x定义为由元素1,2,3组成的向量。
> x
[1] 1 2 3
> x<-1:10 #从1-10之间所有的整数
> x
 [1]  1  2  3  4  5  6  7  8  9 10
> x<-seq(1,10,by=0.5) #1-10之间每隔0.5取一个数
> x
 [1]  1.0  1.5  2.0  2.5  3.0  3.5  4.0  4.5
 [9]  5.0  5.5  6.0  6.5  7.0  7.5  8.0  8.5
[17]  9.0  9.5 10.0
> x<-rep(1:3,times=2) #1-3 重复2次
> x
[1] 1 2 3 1 2 3

从向量中提取元素

x int[1:6] 1 2 3 1 2 3

(1)根据元素位置

> x[4]
[1] 1
> x[-4]
[1] 1 2 3 2 3
> x[2:4]
[1] 2 3 1
> x[-(2:4)]
[1] 1 2 3
> x[c(1,5)]
[1] 1 2

(2)根据值

> x[x==10]
integer(0)
> x[x==1]
[1] 1 1
> x[x<0]
integer(0)
> x[x<3]
[1] 1 2 1 2
> x[x%in%c(1,2,5)]
[1] 1 2 1 2

数据框

读取本地数据

> read.table(file="huahua.txt", sep="\t",header=T)
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA
> a<-read.table(file="huahua.txt", sep="\t",header=T)

read.table(file, header = FALSE, sep = "", quote = ""'",
dec = ".", numerals = c("allow.loss", "warn.loss", "no.loss"),
row.names, col.names, as.is = !stringsAsFactors,
na.strings = "NA", colClasses = NA, nrows = -1,
skip = 0, check.names = TRUE, fill = !blank.lines.skip,
strip.white = FALSE, blank.lines.skip = TRUE,
comment.char = "#",
allowEscapes = FALSE, flush = FALSE,
stringsAsFactors = default.stringsAsFactors()
fileEncoding = "", encoding = "unknown", text, skipNul = FALSE)

sep
the field separator character. Values on each line of the file are separated by this character. If sep = "" (the default for read.table) the separator is ‘white space’, that is one or more spaces, tabs, newlines or carriage returns.

header
a logical value indicating whether the file contains the names of the variables as its first line. If missing, the value is determined from the file format: header is set to TRUE if and only if the first row contains one fewer field than the number of columns.

设置行名和列名

> X<-read.csv('doudou.txt')
> X
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA
> colnames(X)
[1] "X1" "X2"
> rownames(X)
[1] "1" "2" "3" "4" "5"
> colnames(X)[1]<-"bioplanet"
> colnames(X)
[1] "bioplanet" "X2"       
> X<-read.csv(file = "huahua.txt",sep = "   ",header =T,row.names=1)
> X
  X2
A  1
B NA
C NA
D  3
E NA

数据框的导出

write.table(X,file = "yu.txt",sep = ",",quote=F)#分隔符改为逗号,字符串不加双引号(默认格式带由双引号) 
image.png

变量的保存与重新加载

save.image(file="bioinfoplanet.RData")#保存当前所有变量
save(X,file="test.RData")#保存其中一个变量
load("test.RData")#再次使用RData时的加载命令
image.png

提取元素

> X<-read.csv('doudou.txt')
> X
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA

> X[1,2]
[1] 1

> X[3,]
  X1 X2
3  C NA

> X[,2]
[1]  1 NA NA  3 NA

> X[2]
  X2
1  1
2 NA
3 NA
4  3
5 NA

> X[1:2]
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA

> X[c(1,2)]
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA

> X$X2
[1]  1 NA NA  3 NA

【选修部分】直接使用数据框中的变量

> options(stringsAsFactors = T)
> a <-data.frame(case=paste0("S",1:9),values=runif(9))
> a
  case     values
1   S1 0.90779736
2   S2 0.71654872
3   S3 0.68911164
4   S4 0.28194740
5   S5 0.01935258
6   S6 0.35217174
7   S7 0.09469227
8   S8 0.58675009
9   S9 0.95823204
> plot(a$case,a$values)
image.png

环境设置函数为options(),用options()命令可以设置一些环境变量,使用help(options)可以查看详细的参数信息。
R语言数据框中的stringsAsFactors参数

为了避免重复地键入对象名称,不能允许数据框名出现两次。

方法1:attach

> plot(a$case,a$values)
> attach(a)
> plot(case,values)
> detach(a)
> plot(case,values)
Error in plot(case, values) : 找不到对象'case'

方法2:with

> with(a,{
+     plot(case,values)
+     x<<-summary(values)  #求和并赋值给x,<<的意思是作为全局变量,也就是出了大括号仍有效。
+ })

> x
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
0.01935 0.28195 0.58675 0.51184 0.71655 0.95823 
>with的用法1
> with(mtcars,{
+ summary(mpg,disp,wt)
+ plot(mpg,disp)
+ plot(mpg,wt)
+ })
#大括号{}之间的语句都只针对数据框mtcars执行,但如果大括号中只有summary(mpg)一句的话,则省略大括号。
with的用法2
> with(mtcars,{
+ stats<-summary(mpg)
+ stats})
   Min. 1st Qu. Median Mean 3rd Qu. Max.
  10.40 15.42 19.20 20.09 22.80 33.90

学会保存脚本

image.png

另外请在作业中回答一个问题:save(X,file="test.RData")这句代码如果报错object X not found,是为什么,应该怎么解决?

X没有赋值。用X<-语句给X赋值。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,509评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,806评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,875评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,441评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,488评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,365评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,190评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,062评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,500评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,706评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,834评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,559评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,167评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,779评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,912评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,958评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,779评论 2 354

推荐阅读更多精彩内容