【R语言学习笔记】文档读取和类型修改

来源:互联网 发布:miya知乎 编辑:程序博客网 时间:2024/06/05 18:42

今天偶然看到一个方法可以稍微提高下数据读取和更改,在这里把之前的笨方法和新方法一同记录下。

首先,如果需要读取文档,一般使用read.csv命令,而为了更好定位到文档位置,一般用choose.files(),比如我有一个CO2文档

choose.files()

显示:

[1] "C:\\Users\\yangyunru\\Documents\\CO2.csv"

然后直接读取

read.csv("C:\\Users\\yangyunru\\Documents\\CO2.csv",stringsAsFactors = F)

一般习惯加上stringsAsFactors = F 这段,不让字符串自动成为因子,因为会出现错误。

OK,到这比如针对一列的数字/字符进行因子转化,这块针对另一个例子,因为CO2这个数据集都是数字,没有因子、

举一个Arthritis数据集的例子,这个数据集在vcd包中。

library(vcd)str(Arthritis)

看到这个数据集的结果是

'data.frame':   84 obs. of  5 variables: $ ID       : int  57 46 77 17 36 23 75 39 33 55 ... $ Treatment: Factor w/ 2 levels "Placebo","Treated": 2 2 2 2 2 2 2 2 2 2 ... $ Sex      : Factor w/ 2 levels "Female","Male": 2 2 2 2 2 2 2 2 2 2 ... $ Age      : int  27 29 30 32 46 58 59 59 63 63 ... $ Improved : Ord.factor w/ 3 levels "None"<"Some"<..: 2 1 1 3 3 3 1 3 1 1 ...

首先,这是个data.frame,然后有五个变量,分别为ID/Treatment/SEX/Age/Improved;看到ID是整数(int),Treatment、Sex是Factor,Age是整数,Improved是有序因子;

OK,如果这时候我想要改变里面所有的因子成为数值,可以用一个笨方法:

Arthritis1<-ArthritisArthritis1$Treatment<-as.numeric(Arthritis1$Treatment)Arthritis1$Sex<-as.numeric(Arthritis1$Sex)Arthritis1$Improved<-as.numeric(Arthritis1$Improved)

这边是因子转化为数字,一般来说,有个需要修改的数字就有几行代码,有点不够简洁。

下面用第二个稍微轻松的方法:transform函数

Arthritis2<-transform(Arthritis,                      Improved=as.numeric(Improved),                      Sex=as.numeric(Sex),                      Treatment=as.numeric(Treatment)                      )

一行代码就搞定,其实也是三行。。。。

但是面对因子多的时候,还是觉得第二种方法更简洁。

0 0