iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >详解R语言的24个高效操作技巧
  • 943
分享到

详解R语言的24个高效操作技巧

R语言24个高效操作R语言操作技巧 2023-05-18 05:05:03 943人浏览 八月长安
摘要

目录R语言中的一些特殊技艺1 修改默认提示语言2 查看R所消耗内存大小3 查看某个数据集内存大小4 代码中换行5 边赋值边显示7 查看源代码8 利用函数修改镜像9 显示更多数据10

R语言中的一些特殊技艺

1 修改默认提示语言

R默认提示的语言有的人是英文,有的人是中文,这是因为每个人系统默认语言不同,可以通过下面方式进行修改

Sys.getlocale() #显示系统语言
Sys.setenv(LANG="en") # 更换默认语言为英文

2 查看R所消耗内存大小

可以使用memory.size() #获取内存大小,不过该函数值只是和windows系统。

memory.size() #获取内存大小
[1] 341

3 查看某个数据集内存大小

> object.size(mtcars)
7208 bytes
> object.size(mtcars)/1024 #以kb显示
7 bytes  

4 代码中换行

默认回车是运行代码,在Rstudio中有自动补齐,比如定义一个函数,直接自动补齐了{},回车就运行了,可以使用shift+enter #换行

function(x,y) {
}

5 边赋值边显示

默认赋值完,直接敲变量名就打印数据,可以利用下面方式一步完成两个操作。

 (x <- runif(10))
 [1] 0.5795985 0.4661326 0.9730974 0.6697417 0.2431985 0.3988545 0.4064351 0.8403910
 [9] 0.3136191 0.9979925

7 查看源代码

如果想查看R函数的源代码,直接输入函数名,不加括号即可。

> mean
function (x, ...) 
UseMethod("mean")
<bytecode: 0x0000023e3b8db998>
<environment: namespace:base>

8 利用函数修改镜像

如果不设置R镜像,每次安装R包是都会弹出选择框,可以在安装之前通过函数进行设置,使用chooseCRANmirror()函数,给定ind选项一个数值即可。数值代表镜像编号。

> chooseCRANmirror()
Secure CRAN mirrors 
 1: 0-Cloud [https]                       2: Australia (Canberra) [Https]       
 3: Australia (Melbourne 1) [https]       4: Australia (Melbourne 2) [https]    
 5: Australia (Perth) [https]             6: Austria [https]                    
 7: Brazil (BA) [https]                   8: Brazil (PR) [https]                
 9: Brazil (RJ) [https]                  10: Brazil (SP 1) [https]              
11: Brazil (SP 2) [https]                12: Bulgaria [https]                   
13: Canada (MB) [https]                  14: Chile (SantiaGo) [https]           
15: China (Beijing 2) [https]            16: China (Hefei) [https]              
17: China (Hong Kong) [https]            18: China (Guangzhou) [https] 
> chooseCRANmirror(ind = 18)

9 显示更多数据

默认R显示1000行数据,如果想显示更多,可以通过设置max.print选项。

> options('max.print')
$max.print
[1] 1000
> options('max.print'=2000)
> options('max.print')
$max.print
[1] 2000

10 默认保留小数点

默认R显示7为小数,如果想默认保留两位小数,可以通过设置digits选项。

> options('digits')
$digits
[1] 7
> options('digits'=2)
> options('digits')
$digits
[1] 2

11 管道

使用管道让代码更加简洁,无需定义过多中间变量。R中的管道符号为“%>%”如果要使用管道,需要加载magrittr包。其实Rstudio出的各种包都默认支持管道,如果加载了tidyverse包也是可以。

> library(magrittr)
> library(ggplot2)
> mtcars %>% ggplot(aes(x=cyl,y=mpg,group=cyl))+geom_boxplot()

12 拆分列数据

有些时候记不住列名,或者容易拼错,想要列名也能够自动补齐,可以使用attach函数,这样每一列就变成一个独立的变量。

attach(mtcars)
> cyl
 [1] 6 6 4 6 8 6 8 4 4 6 6 8 8 8 8 8 8 4 4 4 4 8 8 8 8 4 4 4 8 6 8 4
> mpg
 [1] 21.0 21.0 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 17.8 16.4 17.3 15.2 10.4 10.4
[17] 14.7 32.4 30.4 33.9 21.5 15.5 15.2 13.3 19.2 27.3 26.0 30.4 15.8 19.7 15.0 21.4

13 默认加载包

如果一些包经常使用,想要启动R之后自动加载,可以在配置文件中进行设置,例如每期启动R,自动加载ggplot2包。

file.edit("~/.Rprofile")
.First <- function() {
library(ggplot2)
}

14 为R添加额外扩展包加载路径

默认R包的加载目录在.libPaths()目录中,当然可以为其添加更多的路径。

> .libPaths()
[1] "C:/Users/genom/Documents/R/win-library/4.0"
[2] "C:/Program Files/R/R-4.0.3/library"        
> .libPaths(new = "C:/Users/genom/Desktop/nparFiles/")
> .libPaths()
[1] "C:/Users/genom/Desktop/nparFiles"   "C:/Program Files/R/R-4.0.3/library"

15 迁移R包

如果需要将一台设备安装的R包,在另外一台设备上安装,首先保存A设备上的R包名字列表,在另外一台设备上写一个循环进行安装。

#在A设备上保存名字列表
oldip <- installed.packages()[,1]
save(oldip,file = "installedPacckages.Rdata")
#在B设备上进行安装;
load("installedPacckages.Rdata")
newip <- installed.packages()[,1]
 for (i in setdiff(oldip,newip)) {
  install.packages(i)
}

16 列出R包中的函数

如果想查看一个R包中全部函数,可以使用下面的语句。

ls(package:base)

17 不加载包使用其中函数

如果加载R包,还想使用其中的函数,需要使用“包名字::函数名”的方式。

dplyr::filter()

18 快速获取颜色

在绘图的时候,想要快速设置几个不同的颜色,又嫌生成颜色比较麻烦。可以使用rainbow()函数,给定一个数据,快速生成颜色。

> rainbow(6)
[1] "#FF0000" "#FFFF00" "#00FF00" "#00FFFF" "#0000FF" "#FF00FF"

19 炸开数据

前面介绍了attach函数可以将每一列变成一个单独变量,但这种方式并不推荐,因为会让变量环境很混乱。可以使用一个特殊管道符"%$%"实现同样的效果,我称之为把数据“炸开”

> library(magrittr)
Warning message:
程辑包‘magrittr'是用R版本3.6.3 来建造的 
> women %$% plot(weight,height)

20 巧用example函数学习绘图

example函数会帮助运行R帮助文档中的代码,有时候想看一个函数如何使用,可以直接运行这个example函数。

> library(pheatmap)
> example("pheatmap")
phetmp> # Create test matrix
phetmp> test = matrix(rnORM(200), 20, 10)
phetmp> test[1:10, seq(1, 10, 2)] = test[1:10, seq(1, 10, 2)] + 3
phetmp> test[11:20, seq(2, 10, 2)] = test[11:20, seq(2, 10, 2)] + 2
phetmp> test[15:20, seq(2, 10, 2)] = test[15:20, seq(2, 10, 2)] + 4
phetmp> colnames(test) = paste("Test", 1:10, sep = "")
phetmp> rownames(test) = paste("Gene", 1:20, sep = "")
phetmp> # Draw heatmaps
phetmp> pheatmap(test)

21 统计计算时间

想统计一条代码运行时间,可以使用system.time()函数

> system.time(runif(100000000))
用户 系统 流逝 
2.75 0.08 2.83 

21 释放内存

R有一套自己的内存回收机制,因此,即使删除了变量,内存不会立即变化,可以使用GC()函数释放内存。

> memory.size()
[1] 297.56
> rm(list = ls())
> memory.size()
[1] 298.54
> gc()
          used (Mb) gc trigger  (Mb) max used  (Mb)
Ncells 1384255 74.0    4046672 216.2  4046672 216.2
Vcells 4288164 32.8   27057220 206.5 33821525 258.1
> memory.size()
[1] 255.5

22 删除全部变量

#显示全部变量内容
> ls()
#删除
> rm(list=ls())
#释放内存
> gc()

23 恢复默认数据集

如果不小心将内置数据集删除了,或者新定义同名变量,就会替换原有数据集。

 head(mtcars)
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
> mtcars=1:10
> mtcars
 [1]  1  2  3  4  5  6  7  8  9 10
> data("mtcars")
> head(mtcars)
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
> 

24 快速获取函数选项参数

R函数的选项参数非常多,如果每次都调出帮助文档很麻烦,可以使用args()函数,快速打印出函数的选项参数。

> args(heatmap)
function (x, Rowv = NULL, Colv = if (symm) "Rowv" else NULL, 
    distfun = dist, hclustfun = hclust, reorderfun = function(d, 
        w) reorder(d, w), add.expr, symm = FALSE, revC = identical(Colv, 
        "Rowv"), scale = c("row", "column", 
        "none"), na.rm = TRUE, margins = c(5, 5), ColSideColors, 
    RowSideColors, cexRow = 0.2 + 1/log10(nr), cexCol = 0.2 + 
        1/log10(nc), labRow = NULL, labCol = NULL, main = NULL, 
    xlab = NULL, ylab = NULL, keep.dendro = FALSE, verbose = getOption("verbose"), 
    ...) 
NULL

以上就是详解R语言的24个高效操作技巧的详细内容,更多关于R语言24个高效操作的资料请关注编程网其它相关文章!

--结束END--

本文标题: 详解R语言的24个高效操作技巧

本文链接: https://www.lsjlt.com/news/211778.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 详解R语言的24个高效操作技巧
    目录R语言中的一些特殊技艺1 修改默认提示语言2 查看R所消耗内存大小3 查看某个数据集内存大小4 代码中换行5 边赋值边显示7 查看源代码8 利用函数修改镜像9 显示更多数据10 ...
    99+
    2023-05-18
    R语言24个高效操作 R语言操作技巧
  • Go语言高效编程的3个技巧总结
    目录不要使用Logrus不要使用encoding/json尽可能不要在goroutine中使用闭包总结不要使用Logrus 这其实和泛型有关。因为Go语言是一门强类型的静态语言,所以...
    99+
    2023-01-03
    Go语言编程 go 语言高级编程 go语言高效编程
  • 提高文件操作效率的秘诀:Go语言异步编程技巧
    在日常的开发中,文件操作是不可避免的。无论是读取配置文件,还是处理大量的数据文件,文件操作都是必不可少的一环。然而,对于大型文件或者文件数量较多的情况,单线程的文件操作效率往往会受到限制。那么,如何提高文件操作效率呢?这就需要使用到Go语...
    99+
    2023-09-24
    异步编程 文件 关键字
  • R语言对二进制文件操作详解
    二进制文件是包含仅以位和字节(0和1)的形式存储的信息的文件。它们不是人类可读的,因为它中的字节转换为包含许多其他不可打印字符的字符和符号。尝试使用任何文本编辑器读取二进制文件将显示...
    99+
    2024-04-02
  • R语言操作文件方法详解教程
    目录1. 文件与文件夹列表的读取2. 新建文件与文件夹3. 文件与文件夹的删除4. 查看文件与文件夹是否存在小练习由于最近在处理一些真实数据时涉及到嵌套的 .tar.gz 文件的解压...
    99+
    2024-04-02
  • 高效的Go语言文件关闭技巧
    高效的Go语言文件关闭技巧 在Go语言开发中,处理文件操作是一个常见的任务。正确地关闭文件对于释放资源和避免内存泄漏非常重要。在本文中,我们将介绍一些高效的文件关闭技巧,并提供具体的代...
    99+
    2024-02-28
    go语言 高效 文件关闭
  • Windows 环境下的 Go 语言开发技巧:数组操作详解!
    作为一种高效、可靠的编程语言,Go 语言在近年来得到了越来越多的关注和使用。而数组是 Go 语言中最基础的数据结构之一,也是最为常用的数据类型之一。在本文中,我们将详细介绍在 Windows 环境下使用 Go 语言进行数组操作的技巧和注意...
    99+
    2023-06-20
    数组 开发技术 windows
  • R语言对数据库进行操作的实例详解
    数据是关系数据库系统以规范化格式存储。 因此,要进行统计计算,我们将需要非常先进和复杂的Sql查询。 但R语言可以轻松地连接到许多关系数据库,如MySql,Oracle,Sql服务器...
    99+
    2024-04-02
  • 提高开发效率的Go语言应用技巧
    掌握Go语言的应用技巧:提升你的开发效率! 随着互联网的快速发展,编程语言也在不断涌现和演进。Go语言作为一种相对较新的语言,以其简洁、高效和强大的特性,逐渐受到了广大开发者的关注和喜爱。那么,如何才能更好地...
    99+
    2024-02-02
    go语言 应用技巧 开发效率 网络编程 标准库
  • R语言中set.seed()函数的作用详解
    目录001、首先查看不使用set.seed函数的情况002、使用set.seed函数的情况003、改变种子序号的情况R语言中set.seed()函数的作用是保证前后生成的随机数保持一...
    99+
    2024-04-02
  • 使用Golang实现高效的Map修改操作技巧
    使用Golang实现高效的Map修改操作技巧 在Golang中,map是一种非常常用的数据结构,用于存储键值对的集合。在处理大规模数据时,对map的修改操作可能会成为性能瓶颈。因此,本...
    99+
    2024-03-02
    golang map 修改 键值对
  • 快速掌握Go语言range的高效使用技巧
    Go语言是一种开源的编程语言,由Google开发并开源,在近年来越来越受到程序员的青睐。在Go语言中,range是一个强大且方便的迭代器,可用于遍历数组、切片、映射、通道等数据结构。本...
    99+
    2024-03-12
    技巧 go语言 range 键值对
  • C语言的堆串操作详解
    目录一、堆串概念。二、基本操作。三、运行:总结一、堆串概念。 与定长顺序穿的存储结构类似,都是用一组地址连续的存储单元存储串的字符序列,不同的是堆串的存储空间是动态分配的,只要存储空...
    99+
    2024-04-02
  • R语言多线程运算操作(解决R循环慢的问题)
    已经大半年没有更新博客了。。最近都跑去写分析报告半年没有R 这次记录下关于R循环(百万级以上)死慢死慢的问题,这个问题去年就碰到过,当时也尝试过多线程,but failed........
    99+
    2024-04-02
  • R语言 设置ylab每个汉字竖向排列的操作
    只看标题可能不知道啥意思,所以先上图了。 从图中可以看到ylab中汉字的排列方式是从上到下的,要实现这样的效果有两个关键步骤: 一是ylab不是常规的“月工作量”,而是'月\n工\...
    99+
    2024-04-02
  • 构建高效服务:Go语言中的请求限制技巧
    在当今互联网时代,构建高效的服务已经成为每个开发者必须面对的挑战。使用适当的请求限制技巧可以帮助我们更好地管理服务的负载,保证服务的稳定性和性能。在本文中,我们将重点介绍如何在Go语言...
    99+
    2024-04-02
  • C语言中的文件操作详解
    目录1.为什么使用文件2.什么是文件2.1程序文件2.2数据文件2.3文件名3.文件的打开和关闭3.1文件指针3.2文件的打开和关闭4.文件的顺序读写5.文件的随机读写5.1fsee...
    99+
    2024-04-02
  • Go 语言实现高效的数据存储和访问技巧
    Go 语言作为一门高性能的编程语言,不仅在网络编程和并发编程等领域表现出了出色的性能,而且在数据存储和访问方面也具有很高的效率。本文将介绍一些 Go 语言实现数据存储和访问的技巧,让你...
    99+
    2024-04-02
  • 【开发语言】C语言与Python的互操作详解
    博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头...
    99+
    2023-09-09
    开发语言 c语言 python
  • Go语言中的I/O操作详解
    Go语言是一种由Google开发的开源编程语言,其设计注重简洁、高效和并发性能。在Go语言中,I/O操作是非常常见且重要的一部分,本文将详细介绍Go语言中的I/O操作,包括文件读写、网...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作