楼主: complicated
2527 4

[学习分享] [cousera数据科学]R Programming 第一二课(markdown语法) [推广有奖]

  • 3关注
  • 18粉丝

副教授

65%

还不是VIP/贵宾

-

威望
0
论坛币
6463 个
通用积分
3868.8146
学术水平
88 点
热心指数
86 点
信用等级
58 点
经验
21961 点
帖子
507
精华
0
在线时间
1425 小时
注册时间
2007-6-16
最后登录
2024-4-20

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
---
[cousera数据科学]R Programming
---

## 第一课 基础篇
1.R的对象种类(原子级,只有这几种),对一门语言来说,数据类型是需要首先搞明白的character
numeric
interger--这玩意会跟numeric混淆,一般认为要as.numeric一下才好,为什么不知道。这玩意后面跟个L
complex-- 复数,一般我用不着
logical --逻辑

2.关于numbers
Inf 是可以运算的,1/0 =Inf, 1/Inf =0, 此外还有-Inf的存在
NaN 表示undefined value,”不是一个数字“,比如0/0,或者缺失值,但是这玩意不同于na
(http://www.cookbook-r.com/Basics/Working_with_NULL_NA_and_NaN/)


3.属性attributes,不是所有的object都有全部的属性哈
names --names向量,row.names,col.names数据框 ,rownames, colnames矩阵,dimnames,矩阵
dimensions ( 矩阵,数组)
class --这个谁都有
length
以上这些用attributes()查看
4.Fators,存成integer,有label。factor比integer更好懂(有label),比character存储更省空间
factor ( vector, levels=c(") )

5.Missing values
NaN 未定义的数学计算结果,本身也是Na
Na 更全,integer, character,类型都有

6.Subsetting Lists
```{r}
x <- list( foo=1:4, bar = 0.6 ) ;
class( x[1] )
class(  x[[1]] ) # 单层引list,双层引内容
class( x$foo ) #
```

Nested的情况:
```{r}
x <- list( a =list(10,12,14), b=c(3.14, 2.81))x[[c(1,3)]]
x[[1]][[3]]
x[[c(2,1)]]
```

7.读取数据
read.table/ read.csv
readLines, 读取txt文件,通常支持大文件的读入,Rstudio上导入csv/txt的功能代码也是这个
source  读取R代码
dget 同上,没用过
load 读取保存好的工作环境 workspaces,一般来说,原始数据比较大,我喜欢处理好之后存成workspaces,再做的时候读这个
unserialize 读取二进制的R对象,这干啥的?

8.读取大数据集:内存/操作系统
1,500,000 * 120 数据,每个单元8 bytes =...= 1.34GB内存需求
事实上如果要做运算还要大一些,建议内存是数据量的3倍


## 第二课 结构控制,函数,

1.控制结构
if, else
for 固定数目的循环
while 依照条件循环
repeat 无条件重复
break 停止
next 跳过一部
return 返回值

2.if
if () {} else {} / ifelse(  , , )
if () { } else if () { } else if () { } ... else { }

3.for
```{r}
for ( i in 1:10 ) { print (i )}
for ( i in seq_along( names(iris)) ) { print( names(iris))  }
#seq_along函数有意思,它是seq的子函数
```

4. Coding Standards
Indent your code : 代码要有间隔,尽量在函数之间分开
Limit the width of your code 80? columns : 每行不超过80?字
此外,关于代码可读性,推荐大作一篇,by思喆大
http://www.bjt.name/2010/11/google-r-code-style/

5. Scoping Rules of R
R的namespaces 对函数和非函数是隔离开的,所有可能同时存在一个对象叫Lm,还有一个函数也叫lm
R使用的是Lexical Scoping(词法域),不同于Dynamic Scoping
相关资料:
在词法作用域的环境中,变量的作用域与其在代码中所处的位置有关。由于代码可以静态决定(运行前就可以决定),所以变量的作用域也可以被静态决定,因此也将该作用域称为静态作用域。在动态作用域的环境中,变量的作用域与代码的执行顺序有关。
词法作用域允许程序员根据简单的名称替换就能推导出对象引用,例如常量、参数、函数等。这使得程序员在编写模块化的代码是多么的得心应手。同时,这可能也是动态作用域令人感觉到晦涩的原因之一。

函数可以返回函数!
```{r}
make.power <- function(n) {
  pow <- function(x) {
     x^n
  }
  pow
}

cube <- make.power(3)
square <- make.power(2)
cube(3)
square(2)

```

R使用词法作用域的结果:
所有对象都要在内存里( python 也是吗?)——最大的诟病
其他两个没懂==

6.向量化运算简介
```{r}
x <- 1:4; y<- 6:9
x*y
x %*% y
```

7.时间和日期
日期的class是date
时间的class有两种 POSIXct(整数)和POSIXlt(list含day of week等)
从1970-01-01开始计算
```{r}
x <- as.Date("1970-01-01") #日期
x
unclass(x)

x <- Sys.time() #时间
x
p <- as.POSIXlt(x)
names( unclass(p))
```

推介striptime函数:把不规范的字符转化成日期时间的利器,参数不用记,看帮助就好了~


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Programming Program couse Mark Ming undefined

已有 1 人评分学术水平 热心指数 信用等级 收起 理由
jmpamao + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

密码被盗??
沙发
auirzxp 学生认证  发表于 2014-6-14 08:42:01 |只看作者 |坛友微信交流群
嗯。看起来很复杂,学习下

使用道具

藤椅
songlinjl 发表于 2014-6-14 09:26:15 来自手机 |只看作者 |坛友微信交流群
complicated 发表于 2014-6-14 08:36
---
[cousera数据科学]R Programming
---
半道来的,不清楚。

使用道具

板凳
galilee 在职认证  发表于 2014-6-25 18:34:49 |只看作者 |坛友微信交流群
建议你写一个Rmarkdown放在你的github上面,哈哈。

使用道具

报纸
complicated 在职认证  发表于 2014-6-26 06:19:40 |只看作者 |坛友微信交流群
galilee 发表于 2014-6-25 18:34
建议你写一个Rmarkdown放在你的github上面,哈哈。
有的呀有的呀

https://github.com/dcshallot/datasciencecoursera
这是我的~

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-6-24 11:24