Day5 R数据结构

设置工作目录

setwd("E:/生信星球 新手7天/Rdata") #灰常重要,将要处理的数据文件也放里面

R数据类型

vector, array, matrix, list, dataframe

向量 Vector

元素、标量、向量

元素(数字、"字符串")--> 标量(1个元素) --> 向量(多个有序元素)

变量赋值

> x <- c(1,2,3)
> x
[1] 1 2 3
> x <- c(1:10)
> x
 [1]  1  2  3  4  5  6  7  8  9 10
> x <- seq(1,10,by = 0.5)
> x
 [1]  1.0  1.5  2.0  2.5  3.0  3.5  4.0  4.5  5.0  5.5
[11]  6.0  6.5  7.0  7.5  8.0  8.5  9.0  9.5 10
> x <- rep(1:3,times = 2)
> x
[1] 1 2 3 1 2 3

从向量中提取元素

  1. 根据元素位置
> x <- seq(1,10,by = 0.5)
> x
[1]  1.0  1.5  2.0  2.5  3.0  3.5  4.0  4.5  5.0  5.5
[11]  6.0  6.5  7.0  7.5  8.0  8.5  9.0  9.5 10.0
> x[4] #第4个元素
[1] 2.5
> x[-4] #去掉第4个元素
[1]  1.0  1.5  2.0  3.0  3.5  4.0  4.5  5.0  5.5  6.0
[11]  6.5  7.0  7.5  8.0  8.5  9.0  9.5 10.0
> x1 <- x[-4]  #取值操作并不会改变x,可将上述向量赋值给新变量x1
> x
[1]  1.0  1.5  2.0  2.5  3.0  3.5  4.0  4.5  5.0  5.5
[11]  6.0  6.5  7.0  7.5  8.0  8.5  9.0  9.5 10.0
> x1
[1]  1.0  1.5  2.0  3.0  3.5  4.0  4.5  5.0  5.5  6.0
[11]  6.5  7.0  7.5  8.0  8.5  9.0  9.5 10.0
> x[2:4]
[1] 1.5 2.0 2.5
> x[-(2:4)]
[1]  1.0  3.0  3.5  4.0  4.5  5.0  5.5  6.0  6.5  7.0
[11]  7.5  8.0  8.5  9.0  9.5 10.0
> x[c(1,5)] #提取第1和第5个元素
[1] 1 3
  1. 根据值
> x <- seq(1,10,by = 0.5)
> x
 [1]  1.0  1.5  2.0  2.5  3.0  3.5  4.0  4.5  5.0  5.5
[11]  6.0  6.5  7.0  7.5  8.0  8.5  9.0  9.5 10.0
> x[x==10]
[1] 10
> x[x<0]  #这里有问题,不应该返回false吗?
numeric(0)
> x[x %in% c(1.5,2.5,5.5)]  #存在于向量c(1.5,2.5,5.5)中的元素
[1] 1.5 2.5 5.5
> x[x %in% c(1.3,2.3,5.3)]
numeric(0)  #上述问题解决。如果没有提取到元素,会返回数值0

数据框 dataframe

需将数据文件放置在工作目录下

1.读取本地数据框

> setwd("E:/生信星球 新手7天/Rdata")
> X <- read.csv("doudou.txt")
> X
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA

> read.table(file="huahua.txt",sep=" ",header = T)
  X1.X2
1  A\t1
2   B\t
3   C\t
4  D\t3
5   E\t
#介里好像不太对,tab转义字符为"\t"输入试试:
> a <- read.table(file="huahua.txt",sep="\t",header = T)
> a
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA
#这时对了

付转义字符表(跟C++相同)


image.png

2.设置行列名

> colnames(X)
[1] "X1" "X2"
> rownames(X)
[1] "1" "2" "3" "4" "5"
> colnames(X)[1] <- "blabla"
> X
  blabla X2
1      A  1
2      B NA
3      C NA
4      D  3
5      E NA
> #有公司返回数据时左上角第一格为空,R会自动补为x,可用此命令修改
> X <- read.csv(file = "huahua.txt",sep = "\t",header = T,row.names = 1)
> X
  X2
A  1
B NA
C NA
D  3
E NA

3.变量保存及重新加载

save.image(file = "ioinfopanet.RData") #保存当前所有变量
save(X,file = ("X.RData")) #保存X变量
load("X.RData") #再次使用R时加载变量

经验:这里如果要保存Rscrip,感觉可以一开始就脚本框输入命令,控制台返回结果好些。避免命令结果都在控制台,不用到最后才复制粘贴,避免出错。

4.提取元素

> X[1,2] #提取X第1行第2列的元素
[1] 1
> X[2,] #提取X第2行向量
  X1 X2
2  B NA
> X[,2]
[1]  1 NA NA  3 NA
> X[2] #也是第2列
  X2
1  1
2 NA
3 NA
4  3
5 NA
> X[1:2] #第1列到第2列
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA
> X[c(1)] #提取指定某一列
  X1
1  A
2  B
3  C
4  D
5  E
> X$X2
[1]  1 NA NA  3 NA

help学看帮助文档

help("rep")

Examples
rep(1:4, 2)
rep(1:4, each = 2)       # not the same.
rep(1:4, c(2,2,2,2))     # same as second.
rep(1:4, c(2,1,2,1))
rep(1:4, each = 2, len = 4)    # first 4 only.
rep(1:4, each = 2, len = 10)   # 8 integers plus two recycled 1's.
rep(1:4, each = 2, times = 3)  # length 24, 3 complete replications

rep(1, 40*(1-.8)) # length 7 on most platforms
rep(1, 40*(1-.8)+1e-7) # better

## replicate a list
fred <- list(happy = 1:10, name = "squash")
rep(fred, 5)

# date-time objects
x <- .leap.seconds[1:3]
rep(x, 2)
rep(as.POSIXlt(x), rep(2, 3))

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

推荐阅读更多精彩内容