R Programming笔记(swirl包)

1 Basic Building Blocks

  • ?functionname 查看函数详情
?c
  • 可以直接把vector和新元素连接起来
> z <- c(1.1, 9, 3.14)
> c(z, 555, z)
[1]   1.10   9.00   3.14 555.00   1.10   9.00   3.14
  • vector可以直接参与运算
> z * 2 + 100
[1] 102.20 118.00 106.28
  • vector循环运算
> c(1, 2, 3, 4) + c(0, 10)
[1]  1 12  3 14
> c(1, 2, 3, 4) + c(0, 10, 100)
[1]   1  12 103   4
Warning message:
In c(1, 2, 3, 4) + c(0, 10, 100) :
  longer object length is not a multiple of shorter object length
  • 按键盘上箭头回溯历史命令

2 Workspace and Files

  • getwd() 获取当前工作空间路径
  • setwd("dirname") 重设工作空间路径
  • ls() 查看工作目录下所有对象
  • list.files()或dir() 列出工作目录所有文件
  • args(functionname) 查看函数参数
  • dir.create("dirname") 新建目录(递归创建:recursive参数要设置为TURE)
  • file.create("filename") 新建文件(文件名带后缀)
  • file.exists("filename") 检验文件是否存在
  • file.info("filename") 获取文件信息
  • file.info("filename")$item 获取文件具体某项信息
  • file.rename("form_filename", "to_filename") 文件重命名
  • file.remove("filename") 删除文件
  • file.copy("form_filename", "to_filename") 复制文件
  • file.path("filename") 查看相对路径

3 Sequences of Numbers

  • :运算符创建数列
> 1:20
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
> pi:10
[1] 3.141593 4.141593 5.141593 6.141593 7.141593 8.141593 9.141593
> 15:1
 [1] 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1
## ,使用 ?`:`查看帮助
  • seq() 函数创建数列
> seq(1, 20)
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
> seq(0, 10, by = 0.5)
 [1]  0.0  0.5  1.0  1.5  2.0  2.5  3.0  3.5  4.0  4.5  5.0  5.5  6.0  6.5  7.0  7.5
[17]  8.0  8.5  9.0  9.5 10.0
> my_seq <- seq(5, 10, length = 30)
> 1:length(my_seq)
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
[29] 29 30
> seq(along.with = my_seq)
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
[29] 29 30
> seq_along(my_seq)
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
[29] 29 30
  • rep() 函数复制数列
> rep(0, times = 40)
 [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
> rep(c(0, 1, 2), times = 10)
 [1] 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2
> rep(c(0, 1, 2), each = 10)
 [1] 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2

4 Vectors

  • 逻辑运算
> num_vect >= 6
[1] FALSE  TRUE FALSE  TRUE
  • 字符拼贴与连接
> my_char <- c("My", "name", "is")
> my_name <- c(my_char, "Sylvia")
> my_name
[1] "My"     "name"   "is"     "Sylvia"
> paste(my_name, collapse = " ")
[1] "My name is Sylvia"
> paste("Hello", "world!", sep = " ")
[1] "Hello world!"
> paste(1:3, c("X", "Y", "Z"), sep = "")
[1] "1X" "2Y" "3Z"
> paste(LETTERS, 1:4, sep = "-")
 [1] "A-1" "B-2" "C-3" "D-4" "E-1" "F-2" "G-3" "H-4" "I-1" "J-2" "K-3" "L-4" "M-1" "N-2"
[15] "O-3" "P-4" "Q-1" "R-2" "S-3" "T-4" "U-1" "V-2" "W-3" "X-4" "Y-1" "Z-2"
  • sep,collapse,step的区别
> paste(1:10,sep=",")
[1] "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9"  "10"
> paste(1:10,1,sep=",")
[1] "1,1"  "2,1"  "3,1"  "4,1"  "5,1"  "6,1"  "7,1"  "8,1"  "9,1"  "10,1"
> paste(1:10,collapse=",")
[1] "1,2,3,4,5,6,7,8,9,10"
> paste(1:10,1,collapse=",")
[1] "1 1,2 1,3 1,4 1,5 1,6 1,7 1,8 1,9 1,10 1"
> paste(1:10,step=",")
[1] "1 ,"  "2 ,"  "3 ,"  "4 ,"  "5 ,"  "6 ,"  "7 ,"  "8 ,"  "9 ,"  "10 ,"
> paste(1:10,1,step=",")
[1] "1 1 ,"  "2 1 ,"  "3 1 ,"  "4 1 ,"  "5 1 ,"  "6 1 ,"  "7 1 ,"  "8 1 ,"  "9 1 ,"  "10 1 ,"
> paste(1:10,1)
[1] "1 1"  "2 1"  "3 1"  "4 1"  "5 1"  "6 1"  "7 1"  "8 1"  "9 1"  "10 1"

5 Missing Values

  • NA参与运算仍是NA
> x <- c(44, NA, 5, NA)
> x * 3
[1] 132  NA  15  NA
  • is.na() 判定是否NA,返回逻辑值(不能使用my_data == NA,因为NA不是一个值)
  • sum() 计算值为TRUE的数量
> my_na <- is.na(my_data)
> sum(my_na)
[1] 48
  • NaN
> 0 / 0
[1] NaN
> Inf / Inf
[1] NaN
> Inf - Inf
[1] NaN

6 Subsetting Vectors

  • R从1开始排序
> x[1:10]
 [1]  1.0368761         NA         NA  1.3890263 -2.6372952         NA         NA
 [8] -0.7592451         NA         NA
  • 对vector抽取子集
> x[c(3, 5, 7)]
> x[c(-2, -10)]
> x[-c(2, 10)]
  • 对vector取大于零的子集需要先排除缺失值,NA > 0返回NA
> x[x > 0]
 [1] 1.03687611         NA         NA 1.38902626         NA         NA         NA
 [8]         NA         NA         NA         NA 0.03432245 0.35275056 0.72752453
[15]         NA         NA         NA 0.29281794 0.15857674         NA         NA
[22] 1.70880097         NA         NA         NA 0.44062886 0.13357081         NA
[29]         NA         NA
> x[!is.na(x) & x > 0]
 [1] 1.03687611 1.38902626 0.03432245 0.35275056 0.72752453 0.29281794 0.15857674
 [8] 1.70880097 0.44062886 0.13357081
  • identical(x, y)判断两个对象是否一致
  • names()给对象命名,查看命名
> vect <- c(foo = 11, bar = 2, norf = NA)
> names(vect)
[1] "foo"  "bar"  "norf"
> vect2 <- c(11, 2, NA)
> names(vect2) <- c("foo", "bar", "norf")
> identical(vect, vect2)
[1] TRUE
> vect["bar"]
bar 
  2 
> vect[c("foo", "bar")]
foo bar 
 11   2 

7 Matrices and Data Frames

  • dim()返回或设定对象尺寸(vector默认为NULL)
  • length()返回对象长度
  • class()查看对象种类
> dim(my_vector) <- c(4, 5) 
> attributes(my_vector)  ##另一个查看dim属性的方法
$dim
[1] 4 5
> class(my_vector) 
[1] "matrix"
  • matrix()创建矩阵
  • cbind()根据列进行合并,合并的前提是所有数据行数相等
  • data.frame()创建数据框
  • colnames()给数据框定义表头
> my_matrix2 <- matrix(1:20, 4, 5)
my_data <- data.frame(patients, my_matrix)
> cnames <- c("patient", "age", "weight", "bp", "rating", "test")
> colnames(my_data) <- cnames

8 Logic

  • &运算符会和vector所有元素比较,&&则只和第一个元素比较

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容