R语言语法入门

个人查漏补缺,以下全部内容均翻译自 An Introduction to R ,原文链接:

https://cran.r-project.org/doc/manuals/r-release/R-intro.html#The-R-environment

2.1 Vectors and assignment

Assignment can also be made using the functionassign(). Anequivalent way of making the same assignment as above is with:(将值依次赋给x)

> assign("x", c(10.4, 5.6, 3.1, 6.4, 21.7))等同于

> c(10.4, 5.6, 3.1, 6.4, 21.7) -> x

> x[1]

> 1/x  #得到5个结果

> y <- c(x, 0, x)

> y #得到11个结果 [1] 10.4  5.6  3.1  6.4 21.7  0.0 10.4  5.6  3.1  6.4 21.7

通过以上的方式,可以批量处理一些繁琐的数据,无需单独写循环语句.

2.3 Generating regular sequences 生成规则数据集

举个例子

> seq(-5, 5, by=.2) -> s3 生成从-5开始,5结束,步长为0.5的数据集,等同于:

> s4 <- seq(length=51, from=-5, by=.2)

rep()函数, 生成重复数据集.

> s5 <- rep(x, times=5)

> s6 <- rep(x, each=5)

2.4 Logical vectors逻辑型向量

> x

[1] 10.4  5.6  3.1  6.4 21.7

> temp <- x > 13

> temp

[1] FALSE FALSE FALSE FALSE  TRUE

2.5 Missing values缺失值

> z <- c(1:3,NA); ind <- is.na(z)#返回逻辑向量

> z

[1]  1  2  3 NA

> ind

[1] FALSE FALSE FALSE  TRUE

2.6 Character vectors 特征型向量

> labs <- paste(c("X","Y"), 1:10, sep="")

添加特征型向量: c("X1", "Y2", "X3", "Y4", "X5", "Y6", "X7", "Y8", "X9", "Y10")

3.4 The class of an object

"numeric","logical","character"or"list",

but"matrix","array","factor"and"data.frame"are other possible values.

假定class是一个数据框,unclass函数将会打印成一个传统的列表.

> unclass(winter)

4 Ordered and unordered factors 因子排序

举个例子

state <- c("tas", "sa", "qld", "nsw", "nsw", "nt", "wa", "wa", "qld", "vic", "nsw", "vic", "qld", "qld", "sa",  "tas", "sa",  "nt",  "wa",  "vic", "qld", "nsw", "nsw", "wa", "sa",  "act", "nsw", "vic", "vic", "act")

statef <- factor(state)

> statef

[1] tas sa  qld nsw nsw nt  wa  wa  qld vic nsw vic qld qld sa

[16] tas sa  nt  wa  vic qld nsw nsw wa  sa  act nsw vic vic act

Levels:  act nsw nt qld sa tas vic wa

> levels(statef)

[1] "act" "nsw" "nt"  "qld" "sa"  "tas" "vic" "wa"

4.2 The functiontapply()and ragged arrays

继续之前的例子,重新赋予一些值给statef,

> incomes <- c(60, 49, 40, 61, 64, 60, 59, 54, 62, 69, 70, 42, 56,

              61, 61, 61, 58, 51, 48, 65, 49, 49, 41, 48, 52, 46,

              59, 46, 58, 43)

使用函数 tapply() 计算均值:

> incmeans <- tapply(incomes, statef, mean)

act    nsw    nt    qld    sa    tas    vic    wa

44.500 57.333 55.500 53.600 55.000 60.500 56.000 52.250

> stdError = function(x) sqrt(var(x)/length(x))

> incmeans <- tapply(incomes, statef, stdError)

6.3.2attach() and detach()

attach() 函数处理列表list or 数据框dataframe.假定lentils 这个数据框有三个变量 lentils$u,lentils$v,lentils$w.

> attach(lentils) #函数执行类似下面的操作:

> u <- v+w

> lentils$u <- v+w

To detach a data frame, use the function

> detach()

6.3.5 Managing the search path

> search()

[1] ".GlobalEnv"  "Autoloads"    "package:base"

ls(2)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在挖掘分析的过程当中对字符串的处理是极为重要的,且出现也较为频繁,R语言作为当前最为流行的开源数据分析和可视化平台...
    果果哥哥BBQ阅读 6,008评论 0 8
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,068评论 0 2
  • 我们会根据业务的要求做各种复杂的报表,包括了分组、排序、过滤、转置、差分、填充、移动、合并、分裂、分布、去重、找重...
    fhhhfssfhh阅读 1,558评论 0 6
  • 今天,大宝说要带东西去学校义卖,早上准备好自己的玩具说是要卖了它。中午,大宝说把自己的玩具跟同学换了,是同学先要跟...
    2019影阅读 101评论 0 0
  • 别人都已经有人在做了,你为何不好好做自己,做一个有血有肉,有温度的人。 每天打开简书,看着不断变化的首页热门文章,...
    Charles远仁阅读 5,862评论 49 91