(一) 使用键盘直接输入数据
可以用R内置的文本编辑器或直接在代码中嵌入数据
首先考虑前者:
> mydata <- data.frame(age=numeric(0),gender=character(0),weight=numeric(0))
> mydata
[1] age gender weight
<0 rows> (or 0-length row.names)
> mydata <- edit(mydata)
;;最后的> mydata <- edit(mydata)可以简写为fix(my data)
直接嵌入数据集可以用下面的方式:
> mydatatxt <- "
+ age gender weight
+ 25 m 166
+ 30 f 115
+ 18 f 120
+ "
> mydatatxt
[1] "\n age gender weight\n 25 m 166\n 30 f 115\n 18 f 120\n"
> mydata <-
+ read.table(header = TRUE,text=mydatatxt)
> mydata
age gender weight
1 25 m 166
2 30 f 115
3 18 f 120
(二)从带分隔符的文本文件中导入数据
mydataframe <- read.table(file, options)
;;file 是带分隔符的ASCII文本文件,options是控制如何处理数据的选项
假设有一个csv格式(逗号分割)的文件如下图所示:
StudentID,First,Last,Math,Science,Social Studies
011,Bob,Smith,90,80,67
012,Jane,Weary,75,,80
010,Dan,"Thornton, III",65,75,70
040,Mary,"O'Leary",90,95,92
可以通过下列命令读取:
> grades <- read.table("studentgrades.csv",header = TRUE,row.names = "StudentID",sep=",")
;;header命令可以保留列名,row.names选项可以设定行名,sep确定分隔符
> grades
First Last Math Science Social.Studies
11 Bob Smith 90 80 67
12 Jane Weary 75 NA 80
10 Dan Thornton, III 65 75 70
40 Mary O'Leary 90 95 92
> str(grades)
'data.frame': 4 obs. of 5 variables:
$ First : Factor w/ 4 levels "Bob","Dan","Jane",..: 1 3 2 4
$ Last : Factor w/ 4 levels "O'Leary","Smith",..: 2 4 3 1
$ Math : int 90 75 65 90
$ Science : int 80 NA 75 95
$ Social.Studies: int 67 80 70 92
发现R自动把字符串转换为因子了,为了避免这种情况,可以通过stringAsFactors=FALSE阻止这个行为,也可以用colClasses来对每一列都指定一个类:
> grades <- read.table("studentgrades.csv",header = TRUE,row.names = "StudentID",sep=",",colClasses = c("character","character","character","numeric","numeric","numeric"))
> grades
First Last Math Science Social.Studies
011 Bob Smith 90 80 67
012 Jane Weary 75 NA 80
010 Dan Thornton, III 65 75 70
040 Mary O'Leary 90 95 92
> str(gradoes)
Error in str(gradoes) : object 'gradoes' not found
> str(grades)
'data.frame': 4 obs. of 5 variables:
$ First : chr "Bob" "Jane" "Dan" "Mary"
$ Last : chr "Smith" "Weary" "Thornton, III" "O'Leary"
$ Math : num 90 75 65 90
$ Science : num 80 NA 75 95
$ Social.Studies: num 67 80 70 92
(三) 导入Stata的数据
library(foreign)
mydataframe <- read.dta("mydata.dta")
(四)导入excel的数据
改成csv格式读吧。
数据集的标注
(一)变量标签
自己想办法,R很难处理变量的标签问题,最好就是把其赋值给一个变量来访问,比如patient[2] <- "string…………"来表示patient数据框的第二列对应的标签。
(二)值标签
patientID$gender <- factor(patientID,
levels = c(1,2),
labels = c("Male","Female"))
处理数据对象的实用函数:
head(object) ;;显示某对象开始的部分
tail(object) ;;显示某对象结尾的部分
ls() ;;显示当前的对象列表
rm(object1,object2,……) ;;删除环境中的某个对象
rm(list=ls()) ;;删除环境中的所有对象
|
请发表评论