R一些语法

来源:互联网 发布:网络机顶盒电视直播软件下载 编辑:程序博客网 时间:2024/06/05 04:49

1.读文件:
读CSV文件:

U <-read.csv(("G:/JD_data/data/JData_User.csv"),header=TRUE)//不加header默认False,即就是数据框的列名为V1,V2...//header=TRUE,第一列为列名

2.随机抽样

sample(x, size, replace = FALSE, prob = NULL)//replace 是否放回抽样//prob 所抽取元素的概率//x里面抽size个数据
  • 可以用于数据框的随机提取某几行数据

3.读取数据框信息
(1)数据框行数:nrow
(2)数据框列数:ncol
(3)转化为矩阵:data.matrix()

4.合并数据框
(1)横向合并

merge(x = df1, y = df2, by = "某列", all = TRUE)     //innermerge(x = df1, y = df2, by = "CustomerId", all.x = TRUE)//left(以x为主)merge(x = df1, y = df2, by = "CustomerId", all.y = TRUE) //right(以y为主) merge(x = df1, y = df2, by = NULL) //outer(相当于笛卡尔积)

(2)纵向合并
rbind(df1,df2)

plyr包中可以将两个列数不同的数据框进行垂直合并(纵向合并),没有该列的用NA填充,代码:

library("plyr")df.new <- rbind.fill(df1,df2)

5.数据框去重

df1 <- df1[!duplicated(df1),]//去掉所有重复的行df1 <- df1[!duplicated(df1[,c(2,3)]),]//去掉第2和第3列重复的行

6.缺失值处理
NA:代表缺失值
NaN:代表不可能的值
Inf:代表正无穷
-Inf:代表负无穷

is.na():识别缺失值
is.nan():识别不可能值
is.infinite():无穷值

complete.cases()可用来识别矩阵或数据框中没有缺失值的行,若每行都包含完整的实例,则返回TRUE的逻辑向量,若每行有一个或多个缺失值,则返回FALSE;

df1 <- test[complete.cases(df1),]//可以去掉含有缺失值的行

7.分组求和

a=data.frame(customer=c('a','b','a','m','a','b'),consumption=1:6)a  customer consumption1        a           12        b           23        a           34        m           45        a           56        b           6tapply(a$consumption,a$customer,sum)a b m9 8 4tapply(a$consumption,a$customer,length)a b m3 2 1

利用两列的关系进行分组求和

a=data.frame(customer=c('a','b','a','m','a','b'),consumption=1:6,groups=c('A','B','A','B','A','B'))aggregate(a$consumption, list(a$customer,a$groups), sum) Group.1 Group.2 x1       a       A 92       b       B 83       m       B 4

8.最大值
(1)找最大值:max()
(2)找最大值的下标:which.max()

9.数据中心化(标准化,最小-最大规范化)

即就是将数据映射到[0,1]之间:

公式: x-min(x) / max(x)-min(x)

for(i in 1:ncol){df1[,i]=(df1[,i]-min(df1[,i]))/(max(df1[,i])-min(df1[,i]))}  
0 0