R语言的代码类型
当前位置:以往代写 > 其他教程 >R语言的代码类型
2019-06-14

R语言的代码类型

R语言的代码类型

R语言的代码类型


R作为一个高级措施语言主要是用来统计计较和做图。对R语言代码举办类型便于代码的易于阅读、分享和验证。下面这些类型整理自google的R社区配合接头的功效(Google’s R Style Guide)



1、一般性法则


制止利用attach


写函数是只管少的利用stop()


界说S3和S4的工具不要混在一起利用



2、文件定名


以.r竣事文件,尽大概的增加信息在文件名内里,好比


Good:


predict_ad_revenue.R


Bad:


foo.R



3、变量名和函数定名法则


留意,在R情况下,巨细写是敏感的。变量名应该都用小写字母,单词间用.脱离;函数名用每个单词用大写字母开头,不消.毗连。常数项跟函数一样定名但以小k开头。


变量:


Good:


avg.clicks


Bad:


avg_Clicks, avgClicks


函数名:


Good:


CalculateAvgClicks


Bad:


calculate_avg_clicks, calculateAvgClicks


用动词定名函数


常数项:kConstantName



4、R语句


这个大概是最快的,使代码外观变”大度”的法则了


每行最长80个字符。


代码缩进时,空两格。


二次运算符(=,+,-,<-,等)两头用空格。


逗号前不消空格,但逗号后必然得用。


GOOD:


tabPrior <- table(df[df$daysFromOpt < 0, “campaignid”])


total <- sum(x[, 1])


total <- sum(x[1, ])


BAD:


tabPrior <- table(df[df$daysFromOpt<0, “campaignid”]) # Needs spaces around ‘<‘


tabPrior <- table(df[df$daysFromOpt < 0,”campaignid”]) # Needs a space after the comma


tabPrior<- table(df[df$daysFromOpt < 0, “campaignid”]) # Needs a space before <-


tabPrior<-table(df[df$daysFromOpt < 0, “campaignid”]) # Needs spaces around <-


total <- sum(x[,1]) # Needs a space after the comma


total <- sum(x[ ,1]) # Needs a space after the comma, not before



这里包括了赋值、逻辑标记以及逗点脱离。


# 在R内里只管罕用 =


括号左边用空格,挪用函数时除外。


Good:


if (debug)


Bad:


if(debug)



可以有多余的空格(一行中有多个空格),假如这可以或许改进标记间的对齐。


plot(x = xCoord,


y = dataMat[, makeColName(metric, ptiles[1], “roiOpt”)],


ylim = ylim,


xlab = “dates”,


ylab = metric,


main = (paste(metric, ” for 3 samples “, sep=””)))




括号或方括号内不消空格,逗号后头除外。


GOOD:


if (debug)


x[1, ]


BAD:


if ( debug ) # No spaces around debug


x[1,] # Needs a space after the comma



大括号{ 开始的{不能单独成行,竣事的}必需单独成行。



单独的一个语句应重新的一行开始。


BAD:


if (is.null(ylim)) ylim <- c(0, 0.06)


if (is.null(ylim)) {ylim <- c(0, 0.06)}



5、代码组织


尤其是做项目标话,以下信息是必需有的:


版权声明


作者注释


文件说明,项目目标,输入和输出的说明


source() 和 library() 说明


函数界说


其他



6、注释


养成精采的注释习惯


单行注释以 # 开头,加一个空格


短注释需要在代码后头空两格,然后 # ,再加一个空格


# Create histogram of frequency of campaigns by pct budget spent.


hist(df$pctSpent,


breaks = “scott”, # method for choosing number of buckets


main = “Histogram: fraction budget spent by campaignid”,


xlab = “Fraction of budget spent”,


ylab = “Frequency (count of campaignids)”)




7、函数界说与挪用


函数界说应该先列出语句中没有默认值,然后是默认值。在函数界说和挪用时,答允每行多个语句,一般只是在赋值时才换行。


GOOD:


PredictCTR <- function(query, property, numDays,


showPlot = TRUE)


BAD:


PredictCTR <- function(query, property, numDays, showPlot =


TRUE)



8、 函数归档


应该在函数界说的下一行举办注释,包罗描写函数的浸染;描写语句中的参数用Args:描写数据范例;描写返回值用Returns:。注释部门应尽大概具体,以便读者再不看代码时就能应用该函数。好比:


Example Function


CalculateSampleCovariance <- function(x, y, verbose = TRUE) {


# Computes the sample covariance between two vectors.


#


# Args:


# x: One of two vectors whose sample covariance is to be calculated.


# y: The other vector. x and y must have the same length, greater than one,


# with no missing values.


# verbose: If TRUE, prints sample covariance; if not, not. Default is TRUE.


#


# Returns:


# The sample covariance between x and y.


n <- length(x)


# Error handling


if (n <= 1 || n != length(y)) {


stop(“Arguments x and y have invalid lengths: “,


length(x), ” and “, length(y), “.”)


}


if (TRUE %in% is.na(x) || TRUE %in% is.na(y)) {


stop(” Arguments x and y must not have missing values.”)


}


covariance <- var(x, y)


if (verbose)


cat(“Covariance = “, round(covariance, 4), “.\n”, sep = “”)


return(covariance)


}



9、任务间代码气势气魄应保持一致


TODO(username): Explicit description of action to be taken




结语


代码书写的类型遵循知识和一致性原则。书写类型的代码有利于让读者会合精神到你所写的而不是分辨你是奈何写的(让代码清淅易懂)。最后,谈论了这么久的代码书写,代码自己的兴趣愈甚于这些,Have fun!

    关键字:

在线提交作业