R语言编程时如何传递文件名参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言编程时如何传递文件名参数相关的知识,希望对你有一定的参考价值。

参考技术A 何写R语言脚本 method 依 依.创建file.R文件 贰.文件首行 #!/path/to/Rscript 三.面行键入R代码 四.保存(png()jpeg()等函数代码定要dev.off()) 5.file.R工作目录终端输入命令 R CMD BATCH --args file.R method 贰 依.创建R脚本 贰.文件首行 #!/usr/bin/env Rscript 三.终端输入命令 R CMD BATCH --args file.R 或者 Rscript file.R chmod 漆55 file.R ./file.R method 三 依.file.sh文件键入: #!/bin/sh R --slave [other option]<file.sh method 四 归R环境 >source("/homeR/file.R"

R语言中DataFrame列名作为函数参数

R语言中DataFrame列名作为函数参数

在使用Tidyverse提供的各种函数时,我们很多时候都会直接传递DataFrame的列名作为函数参数,对对应的列进行操作。如果我们自定义的函数中需要传递列名作为函数参数,如何实现呢?

直接传递列名会怎么样?

比如,我们自定义一个函数,用于计算指定列名的平均值

# 函数定义
col_mean <- function(data, colname)  data %>% summarise(across(colname, mean)) 
# 函数调用,这里的mpg为数据表中的列名
data <- read_csv(readr_example('mtcars.csv'))
col_mean(data, mpg)

执行结果:

可以发现,直接使用列名传递到函数中会报错,下面介绍两种解决方案:

使用语法糖

col_mean <- function(data, colname)  data %>% summarise(across(colname, mean)) 

在函数体中使用将列名括起来即可。

使用enquo函数和!!语法糖

col_mean <- function(data, colname)  colname <- enquo(colname); data %>% summarise(across(!!colname, mean)) 

第二种方法是在函数体内部,先使用enquo()函数将列名转为表达式,然后在使用的时候通过!!符号进行提取即可。

以上是关于R语言编程时如何传递文件名参数的主要内容,如果未能解决你的问题,请参考以下文章

R语言中DataFrame列名作为函数参数

R语言中DataFrame列名作为函数参数

R语言,Perl语言, Shell传递参数的方法

汇编语言和C语言混合编程时,它们之间是如何传递参数的?请用具体例子说明

在C语言中参数是如何传递的?

C语言fopen函数和其参数