数据导入(R语言)

1 键盘输入(最简单)

1.1 实现效果

 age gender weight
1  25      m    166
2  30      f    115
3  18      f    120

1.2 实现方法一read.table()

  • 先创建名为data.txt的字符串;
  • 用函数read.table()创建数据框data.1;
    (该方法可以让我们把数据嵌入到R代码中去)
data.txt <- "
age gender weight
25 m 166
30 f 115
18 f 120
"
data.1 <- read.table(header = T, text = data.txt, sep = " ")
print(data.1)

1.3 实现方法二fix()

  • 用函数fix()创建一个数据框data.2;
  • 直接键入;
data.2 <- data.frame(age=numeric(0), gender=character(0), weight=numeric(0))
#创建一个名为data.2的数据框,框中有age/gender/weight三个值
fix(data.2)
print(data.2)

RSstudio自带的编辑框

2 从文本文件读入(最常用)*

2.1 文件格式

  1. 文件名.csv
  2. 特点:逗号分隔,可以用各种软件打开

2.2 文件读入函数——read.table()

  1. 全部参数

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)

  1. 关键参数
关键参数参数描述
file指定要被读入的带分隔符的文本文件
header一个表示文件是否在第一行包含了变量名的逻辑型变量
sep分开数据值的分隔符。(1)默认是sep=" ",代表了一个或多个空格、制表符、换行或回车;(2)使用sep=","来读取以逗号做分隔符的文件(csv文件);(3)使用sep="\t"来读取用制表符分隔行内数据的文件
col.names如果数据文件的第一行不包含变量名(header=FALSE),可以用col.names指定一个包含变量名的字符向量。如果header=FAISE同时col.names未指定,变量会被分别命名为V1、V2等等
row.names一个用于 指定一个或多行标记符的可选参数
na.strings可选的用于表示缺失的字符向量。比如说,na.strings=c("-9","-7")把-9和-7在读取数据时转换成NA
colClasses可选的分配到每一列的类向量。(1)默认是ccolClasses=NA(不工作状态),文件中的数字读进去就是数字,字符串读进去就是factor;(2) 当colClasses=NULL时,所有列都不读取; (3) colClasse能接受向量实现只读某一列。例:`a<-read.table("D:\B011.txt",colClasses=c("character","numeric",rep("NULL",2)),header=T)`#读取文件D:\B011.txt的前两列,第一列为字符,第二列为数字。
quote用于对有特殊字符的字符串划定界限的字符串。默认值是双引号""或单引号''
skip读取数据前跳过的行的数目。(该选项在跳过头注释时很有用)
stringAsFactors一个逻辑变量,标记处字符向量是否需要转化成因子。默认值是TURE,除非它被colClasses所覆盖。处理大型文本文件的时候,设置成stringsAsFactors=FALSE可以提升处理速度。
text一个指定文字进行处理的字符串,如果text被设置了,file应该被留空(同前文键盘输入的例子)

2.3 示例

  • 一个生物数据文件(前7行为主体数据的注释,第一列为基因名)
    示例文件

1 直接用函数read.table()读取
(效果不理想)

data.3 <- read.table("D://R/R工作目录/example.csv", header = T, quote = "\", sep = ",")
print(data.3[1:10,1:9])
> print(data.3[1:10,1:9])
                          X Related.subtype Expression.in.subtype  NKI_4  NKI_6  NKI_7  NKI_8  NKI_9 NKI_11
1                 ER status                                            1      1      0      0      1      1
2        Histological grade                                            3      2      1      3      3      3
3             BRCA mutation                                            0      0      0      0      0      0
4                Metastasis                                            0      0      0      0      0      0
5         Lymph node status                                            0      0      0      0      0      0
6                 Treatment                                            0      0      0      0      0      0
7                     Study                                          NKI    NKI    NKI    NKI    NKI    NKI
8         SFRP1 (NM_003012)   HER2-enriched                  down -0.306 -0.114 -0.026  0.263 -0.095 -0.213
9  TMEM45B (Contig50838_RC)      basal-like                  down -0.994 -0.398  0.649 -0.231  0.341  0.701
10          PGR (NM_000926)       luminal B         no difference  0.724  0.054  0.183 -0.399    0.1 -0.178

2 修改代码,加上skip和row.name两个参数
(更加条理)

> data.4 <- read.table("D://R/R工作目录/example.csv", header = T, skip = 7, sep = ","quote = "\"", row.names = "Study")
#(skip=7)跳过前7行,(header=T)存在第一行为变量名,(row.names="Study")以Study列为行的变量名
> print(data.4[1:10, 1:9])
                                     X           X.1    NKI  NKI.1  NKI.2  NKI.3  NKI.4  NKI.5  NKI.6
SFRP1 (NM_003012)        HER2-enriched          down -0.306 -0.114 -0.026  0.263 -0.095 -0.213  0.332
TMEM45B (Contig50838_RC)    basal-like          down -0.994 -0.398  0.649 -0.231  0.341  0.701 -1.052
PGR (NM_000926)              luminal B no difference  0.724  0.054  0.183 -0.399  0.100 -0.178 -0.432
MDM2 (NM_002392)             luminal B no difference -0.086  0.195 -0.191  0.132  0.272  0.041 -0.318
MKI67 (NM_002417)            luminal B          down -0.027  0.016 -0.034  0.074 -0.139  0.058     NA
MYBL2 (NM_002466)            luminal A          down  0.103 -0.103 -0.044  0.365 -0.057 -0.055  0.267
CDH3 (NM_001793)             luminal B          down -0.396 -0.770 -0.077 -0.165 -0.518 -0.676  0.861
PTTG1 (NM_021000)            luminal A          down  0.123 -0.083 -0.279  0.127 -0.092 -0.008  0.581
BAG1 (NM_004323)         HER2-enriched no difference -0.134  0.178  0.061 -0.238 -0.013 -0.292 -0.230
EXO1 (NM_003686)             luminal A          down -0.101 -0.248 -0.170  0.403 -0.208 -0.063  0.186
> 

3 常用的数据操作函数

函数用途
length ()显示对象中元素/成分的数量
dim()显示某个对象的维度
str()显示某个对象的结构
class()显示某个对象的类或类型
names()显示某对象中各成分的名称
c()将对象合并入一个向量
cbind()按列合并对象
rbind()按行合并对象
object()输出某个对象
head()输出某个对象的开始部分
tail()输出某个对象的最后部分
ls()输出当前的所有对象
rm()移除某个对象,一般在工作开始时用rm(list=ls())删除工作环境中的几乎所有对象
fix()直接编译对象
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值