学习小组Day5笔记---猫爪草

数据结构

昨天安装R提及到了数据的类型
https://www.jianshu.com/p/c16e9351f083

今天继续学习花花老师的教程
https://www.jianshu.com/p/5f93d48a63ac

向量

向量是用于存储数值型、字符型或逻辑型数据的一维数组。执行组合功能的函数 c()可用来
创建向量。

矩阵

矩阵是一个二维数组,只是每个元素都拥有相同的模式(数值型、字符型或逻辑型)。可通
过函数matrix创建矩阵。

数组

数组(array)与矩阵类似,但是维度可以大于2。数组可通过array函数创建,形式如下:

myarray <- array (vector,dimensions,dimnames)

其中vector包含了数组中的数据,·dimensions是一个数值型向量,给出了各个维度下标的最大值,
dimnames是可选的、各维度名称标签的列表。

数据框

由于不同的列可以包含不同模式(数值型、字符型等)的数据,数据框的概念较矩阵来说更为一般。它与你通常在SAS、SPSS和Stata中看到的数据集类似。数据框将是你在R中最常处理的数据结构。数据框可通过函数data.frame()创建.

列表

列表(list)是R的数据类型中最为复杂的一种。一般来说,列表就是一些对象(或成分,component)的有序集合。列表允许你整合若干(可能无关的)对象到单个对象名下。例如,某个列表中可能是若干向量、矩阵、数据框,甚至其他列表的组合。可以使用函数list()创建列表。

数据的输入

向R中导入数据的权威指南参见可在
http://cran.r-project.org/doc/manuals/R-data.pdf下载的R Data Import/Export手册

1.使用键盘输入数据

也许输入数据最简单的方式就是使用键盘了。R中的函数edit()会自动调用一个允许手动输
入数据的文本编辑器。具体步骤如下:
(1) 创建一个空数据框(或矩阵),其中变量名和变量的模式需与理想中的最终数据集一致;
(2) 针对这个数据对象调用文本编辑器,输入你的数据,并将结果保存回此数据对象中。

假设创建一个名为mydata的数据框,它含有三个变量:
age(数值型)gender(字符型)weight(数值型)
然后你将调用文本编辑器,输入数据,最后保存结果。

mydata <- data.frame(age=numeric(0),
      gender=character(0), weight=numeric(0))
mydata <- edit(mydata)

2.从带分隔符的文本文件导入数据

使用R语言的时候,如果是少量数据,不妨使用c()或其他函数进行创建;但是对于大量数据,最好还是先通过其他更方便的软件创建数据文件,然后使用R读入这个文件。
R语言中读取外部文件的最基本函数是read.table(),
先说read.table()
再讲专门用来读csv的read.csv()
可以使用read.table()从带分隔符的文本文件中导入数据。此函数可读入一个表格格式的文件并将其保存为一个数据框。
敲入?read.table命令,就看到了关于数据输入函数的说明。

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)

read.csv(file, header = TRUE, sep = ",", quote = "\"",
         dec = ".", fill = TRUE, comment.char = "", ...)

read.csv2(file, header = TRUE, sep = ";", quote = "\"",
          dec = ",", fill = TRUE, comment.char = "", ...)

read.delim(file, header = TRUE, sep = "\t", quote = "\"",
           dec = ".", fill = TRUE, comment.char = "", ...)

read.delim2(file, header = TRUE, sep = "\t", quote = "\"",
            dec = ",", fill = TRUE, comment.char = "", ...)

以老师给的 "huahua.txt","doudou.txt"

1.读取本地数据

read.table(file = "huahua.txt",sep = "\t",header =T) #读取文件,分隔符为Tab,有表头 
a<-read.table(file = "huahua.txt",sep = "\t",header =T)#把这个数据框赋给一个变量a 

header 是一个表明首行是否包含了变量名的逻辑值。sep用来指定分隔数据的分隔符。

2.设置行名和列名

X<-read.csv('doudou.txt')
colnames(X)
rownames(X)
colnames(X)[1]<-"bioplanet"
X<-read.csv(file = "huahua.txt",sep = "\t",header =T,row.names=1)
  ```  read.csv```的用法
read.csv(file, header = TRUE, sep = ",",quote="\"", dec=".",
fill = TRUE,comment.char="")

csv就是逗号分割的意思,当然sep必须是逗号。header也是默认有标题的。fill是默认填充的,即遇到行不相等的情况,空白域自动添加既定值。

从当前工作目录中读入了一个名为X<-read.csv('doudou.txt')从文件的第一行取得了各变量名称,将变量1指定为行标识符,最后将结果保存到了名为huahua的数据集中,row.names的意思是修改第一列为行名,参数sep允许你导入那些使用逗号以外的符号来分隔行内数据的文件,
可以使用sep="\t"读取以制表符分隔的文件,
这参数的默认值为sep="",即表示分隔符可为一个或多个空格、制表符、换行符或回车符。

3.数据框的导出

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

4.保存与重新加载

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

5.提取元素

- X[x,y]#第x行第y列
- X[x,]#第x行
- X[,y]#第y列
- X[y] #第y列(
- X[a:b]#第a列到第b列
- X[c(a,b)]#第a列和第b列
- X$列名#也可以提取列

X是指的一个变量名,实际应用要懂得替换成相应的数据。

6.直接使用数据框中的变量

a <-data.frame(case=paste("S",c(1:50)),values=runif(50))
> plot(a$case,a$values)

实际上,你跑完会发现数据框名a在代码中重复出现。

解决:
方法1:attach
将数据框名添加到搜索环境中:attach(a),作图时就只需输入列名(连$都不用了)。

attach(a)
plot(case,values)

做完后将a删除出搜索环境detach(a)
局限性:两个以上数据框的列名有冲突时,同时attach会报错。

方法2:with

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

推荐阅读更多精彩内容