R一些语法

    xiaoxiao2021-04-14  30

    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]))}
    转载请注明原文地址: https://ju.6miu.com/read-669732.html

    最新回复(0)