R一些语法

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)     
//inner
merge(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 consumption
1        a           1
2        b           2
3        a           3
4        m           4
5        a           5
6        b           6

tapply(a$consumption,a$customer,sum)
a b m
9 8 4

tapply(a$consumption,a$customer,length)
a b m
3 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 x
1       a       A 9
2       b       B 8
3       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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值