且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《R数据可视化手册》一1.3 加载分隔符式的文本文件

更新时间:2022-04-11 03:52:59

本节书摘来自异步社区《R数据可视化手册》一书中的第1章,第1.3节,作者 【美】Winston Chang,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.3 加载分隔符式的文本文件

问题
如何加载一个分隔符式的文本文件中的数据?

方法
加载逗号分隔组(CSV)数据的最常用方法是:

data <-read.csv("datafile.csv")

讨论
由于数据文件有许多不同的格式,为了加载它们,提供了很多对应的选项。如果一个数据集首行没有列名:

data <-read.csv("datafile.csv", header=FALSE)

得到的数据框的列名将是V1、V2等,你可能想要重命名列:

#手动为列名赋值
names(data) <-c("Column1","Column2","Column3")

还可以用sep参数来设置分隔符号。如果是空格分隔,使用sep=" ";如果是制表符分隔,使用t。

data <-read.csv("datafile.csv", sep="\t")

默认情况下,数据集中的字符串(string)会被视为因子(factor)处理。假设下面是你的数据文件,然后,你用read.csv()来读取:

"First","Last","Sex","Number"
"Currer","Bell","F",2
"Dr.","Seuss","M",49
"","Student",NA,21

得到的数据框将会把First、Last等存储为因子,尽管此时将它们视为字符串(或使用R中的术语,字符:character)更为合理。为了区别这一点,可以设置stringsAsFactors=FALSE。如果有些列应该被处理为因子格式,你可以再逐个转换:

data <-read.csv("datafile.csv", stringsAsFactors=FALSE)

#转换为因子
data$Sex <-factor(data$Sex)

str(data)

'data.frame': 3 obs. of 4 variables:
$ First : chr "Currer" "Dr." ""
$ Last : chr "Bell" "Seuss" "Student"
$ Sex : Factor w/ 2 levels "F","M": 1 2 NA
$ Number: int 2 49 21

或者,你可以在加载的时候不做设置(字符串自动转换为因子),加载之后再对需要的列进行因子到字符的转换。

另见
read.csv()是对read.table()一个便捷的封装函数。如果需要更多的输入控制,参见?read.table。