1.      文件重命名

file.rename()

2.画图的par()函数变回默认值

device.off()

3.       apply函数加额外参数

x

apply(x, 1, function(x, a) sum((x-a)^2), a =3)

4.表的合并

R中的表合并

一、merge函数外连接合并)

>merge(x = df1, y = df2, by ="CustomerId", all = TRUE)

CustomerId Product   State

1         1Toaster

2         2Toaster Alabama

3         3Toaster

4        4   Radio Alabama

5        5   Radio

6        6   Radio    Ohio

左连接:

merge(x = df1, y = df2, by="CustomerId", all.x=TRUE)

CustomerId Product   State

1         1Toaster

2         2Toaster Alabama

3         3Toaster

4        4   Radio Alabama

5        5   Radio

6        6   Radio    Ohio

右连接:

> merge(x = df1, y = df2, by="CustomerId", all.y=TRUE)

CustomerId Product   State

1         2Toaster Alabama

2        4   Radio Alabama

3        6   Radio    Ohio

交叉连接:

> merge(x = df1, y = df2, by = NULL)

CustomerId.x ProductCustomerId.y  State

1            1 Toaster           2 Alabama

2            2 Toaster           2 Alabama

3            3 Toaster           2 Alabama

4            4  Radio           2 Alabama

5            5  Radio           2 Alabama

6            6  Radio           2 Alabama

7            1 Toaster           4 Alabama

8            2 Toaster           4 Alabama

9            3 Toaster           4 Alabama

10           4  Radio           4 Alabama

11           5  Radio           4 Alabama

12           6  Radio           4 Alabama

13          1 Toaster           6   Ohio

14           2 Toaster           6   Ohio

15           3 Toaster           6   Ohio

16           4  Radio           6    Ohio

17           5  Radio           6    Ohio

18           6  Radio           6    Ohio

使用sqldf包查询合并表

##eg:sqldf("SELECT *FROM df1 where CUstomerId=2"

CustomerId Product

1         2Toaster

内连接:

sqldf("SELECT CustomerId, Product,StateFROM df1 JOIN df2 USING(CustomerID)"

CustomerId Product   State

1         2Toaster Alabama

2        4   Radio Alabama

3        6   Radio    Ohio

左连接:

sqldf("SELECT CustomerId,Product,State  FROM df1 LEFT JOIN df2USING(CustomerID)"

CustomerId Product   State

1         1Toaster

2         2Toaster Alabama

3          3Toaster

4        4   Radio Alabama

5        5   Radio

6        6   Radio    Ohio

三、使用plyr包

library(plyr)

join(df1, df2,type="inner"

CustomerId Product   State

1         2Toaster Alabama

2        4   Radio Alabama

3         6  Radio    Ohio

Type的选项包括:inner、left、right、full(内连接,左连接,右连接,外连接)

四、使用dplyr包

library(dplyr)

> inner_join(df1,df2,by="CustomerId"

CustomerId Product   State

1         2Toaster Alabama

2        4   Radio Alabama

3        6   Radio    Ohio

> left_join(df1,df2)

Joining by: "CustomerId"

CustomerId Product   State

1         1Toaster

2         2Toaster Alabama

3         3Toaster

4        4   Radio Alabama

5        5   Radio

6        6   Radio    Ohio

> semi_join(df1,df2)

Joining by: "CustomerId"

CustomerId Product

1         2Toaster

2        4   Radio

3        6   Radio

> anti_join(df1,df2)

CustomerId Product

1         1Toaster

2         3Toaster

3        5   Radio

5.      绘制图例

plot(x^2,type = "n",ylab ="y" , xlab = "x")

lines(x, lty = 1)

lines(x^2, lty = 2)

legend.txt

legend("topleft", legend =legend.txt, lty = c(1,2))

6.      快速读取大规模数据

Data.table包fread函数可以快速读取大规模文件,4GB文件读取时间可以在1分钟左右。代码示例如下

require(data.table)

system.time(DT

##   user  system elapsed

##   3.12    0.01    3.22

7.       陷阱:在循环内部改变循环变量

i

for (j in 1:3) {

print(j)

if (i==0&&j==2){i

j

print(j+100)

}

}

结果竟然是

[1] 1

[1] 2

[1] 101

[1] 3

为什么不是

[1] 1

[1] 2

[1] 101

[1] 2

[1] 3   ??

循环是按照顺序来的j =1, 2, 3, 4, 5, ...

在每个循环体内,你可以对j随意赋值。但是到下一个循环开始的时候j总会变成比前一个循环多1的值,而不管前面循环体内j是多少

你开始的程序写出来其实就是

i

j

print(j)

if (i==0&&j==2) {

i

j

print(j+100)

}

j

print(j)

if (i==0&&j==2) {

i

j

print(j+100)

}

j

print(j)

if (i==0&&j==2) {

i

j

print(j+100)

}

另外一个例子:

for(j in 1:3){

print(j)

j

print(j)

j

print(j)

}

8.      函数内部访问全局域

a

x

listVar

b

print(ls())

print(ls(pos =".GlobalEnv"))

}

9.      选取上下三角矩阵

upper.tri()

lower.tri()

分别返回矩阵的上三角和下三角

10. 构造等比数列

a=10

i=seq(1,4,1)

y=a*10^i

11. 三维网格图

library(scatterplot3d)

## example 5

data(trees)

s3d

# Now adding some points to the"scatterplot3d"

s3d$points3d(seq(10,20,2), seq(85,60,-5),seq(60,10,-10), col="blue", type="h", pch=16)

# Now adding a regression plane to the"scatterplot3d"

attach(trees)

my.lm

s3d$plane3d(my.lm, lty.box ="solid")

12.library与require的区别

载入需要的包时,library,reuqire都可以使用

存在区别是,require()返回一个布尔值,library返回一个地址的值

> t

Error in library("ac") : 不存在叫‘ac’这个名字的程辑包

> t

[1] "#FF0000FF""#80FF00FF" "#00FFFFFF" "#8000FFFF"

> t1

载入需要的程辑包:ac

Warning message:

In library(package, lib.loc = lib.loc,character.only = TRUE, logical.return = TRUE,  :不存在叫‘ac’这个名字的程辑包

> t1

[1] FALSE

13. 判断某个日期是星期几

#day.of.week() returns a number between 0 and6 to

#specify day of the week–0 refers toSunday.

library(chron)

print(day.of.week(2,8,2010))   #1

print(day.of.week(2,9,2010))   #2

print(day.of.week(2,10,2010))  #3

print(day.of.week(2,11,2010))  #4

print(day.of.week(2,12,2010))  #5

print(day.of.week(2,13,2010))  #6

print(day.of.week(2,14,2010))  #0

print(day.of.week(2,15,2010))  #1

14. 带数学表达式的曲线图

par(mfrow = c(1,1))

xv

yv

plot(xv,yv,type="l",xlab="",ylab="")

polygon(c(xv[xv>=1.645],1.645),c(yv[xv>=1.645],yv[xv==4]),col="grey80",border = "red")

text(2.1+0.5, dnorm(1.645), "拒绝域", adj= c(0.5, 0), cex = 0.75)

arrows(2.6,0.09,2.6,0.015, angle = 10)

text(1.65, -0.015, "临界值1.645",adj = c(0.5, 0), cex = 0.75)

text(2.45, 0.005, "概率0.05",adj = c(0.5, 0), cex = 0.75)

text(0, 0.15, "不拒绝expression(H['0']),概率(或面积)为0.95",adj = c(0.5, 0), cex = 0.75)

#这里似乎不行,我需要弄出H_0来,还望指点一二!谢谢

text(3.6, 0.005, "z的范围", adj= c(0.5, 0), cex = 0.75)

abline(h=0)

15. 注意冒号:优先级最高

例如,在R中,当n=10,   n+1:n的输出结果是11 12 13 14 15 16 17 18 19 20;而n+2-1:n的输出结果是1110  9  8  7  6  5  4  3  2。

为什么输出的结果不一样呢?这是因为在R中:(冒号)的计算优先级高于加减法.前面两个例子等价于n+(1:n),   n + 2 – (1:n)

, customer[,-c(10,13,20)] r语言,R语言基础编程技巧汇编 - 12相关推荐

  1. R语言基础编程技巧汇编 - 20

    1.      RCurl设置代理 假设代理地址是10.10.10.10:端口是:8080. 设置代理地址如下: curl<-getCurlHandle(proxy="10.10.10 ...

  2. , customer[,-c(10,13,20)] r语言,R语言

    第四章 基本数据管理 用到的数据 leadership mydata 1.stringAsFactor=FALSE  字符不转换为因子(创建数据框选项参数) a)如: > leadership ...

  3. R语言基础编程技巧汇编 - 13

    1.      下载文件 有一个包叫downloader,使用这个包的函数 download可以正确下载文件,而且,download和download.file参数是一致. install.packa ...

  4. Java黑皮书课后题第10章:***10.8(金融:Tax类)编程练习题8.12使用数组编写一个计算税款的程序。设计一个名为Tax类,该类包含下面的实例数据域

    ***10.8(金融:Tax类)编程练习题8.12使用数组编写一个计算税款的程序.设计一个名为Tax类,该类包含下面的实例数据域 题目 程序解释 代码 Test8.java Test8_Tax.jav ...

  5. 【C语言、C++基础编程题】【基础类题集】【平顶山学院ACM算法攻关部】

    题源:平顶山学院ACM算法攻关部 目录 前言 1000:A+B Problem 1001:编写一个程序,输出指定信息 1002:求三个数最大值 1003:字符串加密 1004:计算圆柱体的面积体积等 ...

  6. C语言在嵌入式系统编程时的注意事项

    C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言. 尽管C语言提供了许多低级处理的功 ...

  7. 贪吃蛇c语言自动寻路,C/C++编程笔记:C语言贪吃蛇源代码控制台(一),会动的那种哦!...

    前几天有个同学加我QQ私聊我说他们老师布置了一个贪吃蛇,他不知道怎么写所以来找我求解,我给他简单讲解了思路和一些难点之后他也能够自己独立将项目完成了!考虑到更多同学可能有贪吃蛇上的问题,今天有时间就来 ...

  8. c语言编程技巧分析,C语言难点及编程技巧分析

    摘要:近些年信息技术发展迅速,社会需要大量专业的计算机人才,C语言是学习计算机知识的专业理论课程,能够为以后的学习打下专业基础.但目前C语言学习受到各方面因素的影响,学习效果不是很理想,很多时候即使努 ...

  9. 贪吃蛇统计分数的c语言代码,C/C++编程笔记:C语言贪吃蛇源代码控制台(二),分数和食物!...

    接上文<C/C++编程笔记:C语言贪吃蛇源代码控制台(一),会动的那种哦!>如果你在学习C语言开发贪吃蛇的话,零基础建议从上一篇开始哦!接下来正式开始吧! 三.蛇的运动 上次我已经教大家画 ...

  10. java设计求圆的面积周长的代码_java编程 1.设计一个求圆的面积和周长的类,要求:1计算当半径r=10和20时,圆的面积,并显示出来 、...

    导航:网站首页 > java编程 1.设计一个求圆的面积和周长的类,要求:1计算当半径r=10和20时,圆的面积,并显示出来 . 时间:2018-11-8 java编程 1.设计一个求圆的面积和 ...

最新文章

  1. 方便的boost_python
  2. Qt5应用改变窗口大小时出现黑影
  3. silverlight,WPF动画终极攻略之阳光灿烂篇(Blend 4开发)
  4. Optical-Flow光流halcon算子,持续更新
  5. FFmpeg开发实战(三):FFmpeg 打印音视频Meta信息
  6. python 登陆微博 被删除 token_爬取微博信息,使用了cookie仍然无法登录微博
  7. 简约的PHP留言板开源版网站源码
  8. RocketMQ 主从同步机制
  9. 安徽新华学院计算机设计大赛,安徽新华学院学子在中国大学生计算机设计大赛中获佳绩...
  10. PAT L1-019. 谁先倒
  11. 半导体物理学——(一)半导体中的电子状态
  12. fractal 分形维数 盒子维 纹理特征
  13. 基于原语的千兆以太网RGMII接口设计
  14. Android常用十大框架
  15. oracle01004,Oraclegoldengate的OGG-01004OGG-1296错误
  16. 《人类简史》读书笔记
  17. 源程序,目标程序,可执行程序
  18. 高频算法题冒险之旅精讲(一)之LeetCode小牛试刀五道题
  19. 终端常用的命令及功能
  20. Digital Creative

热门文章

  1. 汇总Python全国面试官的50连提问,熟练后月薪一万office轻松到手
  2. wordpress一主机多站点配置笔记
  3. WebRTC学习(九)RTP 媒体控制与数据统计
  4. 跟李沐学AI——动手学深度学习 PyTorch版——学习笔记pycharm版本(第二天——04-08)2023.2.27
  5. springboot校园医院预约挂号系统-计算机毕设 附源码32236
  6. Python基础语法 - 第2关 条件判断与条件嵌套
  7. 有关计算机主板的文章,【有趣】第13期:聊聊我家的第一台电脑
  8. G - Supermarket
  9. C#笔记--字符串比较:string.Compare
  10. 总结:2018年互联网套路简史!