下面是一个示例,演示如何使用dplyr的mutate函数将列名传递给函数: 代码语言:txt 复制 library(dplyr) # 创建一个示例数据框 df <- data.frame( x = c(1, 2, 3), y = c(4, 5, 6) ) # 定义一个函数,将指定列的值加倍 double_column <- function(data, column_name) { data...
在dplyr中的mutate()函数用于在数据框中创建新的变量或修改现有变量。它允许我们在每一行上应用一个函数来计算新的值。 mutate()函数的语法如下: 代码语言:txt 复制 mutate(.data, new_column = function(column)) 其中,.data表示要进行操作的数据框,new_column是新变量的名称,function(column)是要应用的函数,...
>dplyr::mutatefunction(.data,...){UseMethod("mutate")}<environment:namespace:dplyr> 这告诉我们,"mutate"其实是一个泛型函数( generic function),因为它使用UseMethod()调用和数据结构对应的"mutate". 我们可以用”methods“去找给定泛型函数的所有实现方法 PS: 如果你输入的不是数据框或者tbl_df,那么泛型函数...
scale2<-function(x,na.rm=FALSE)(x-mean(x,na.rm=na.rm))/sd(x,na.rm)iris%>%mutate_if(is.numeric,list(scale2,log)) 如果list里只有一个函数,它会直接修改已经存在的变量(in place),这时可以给它一个新的变量名则创建新的变量 iris%>%mutate_if(is.numeric,list(scale2))iris%>%mutate_if(...
我认为您必须将RHS字符串转换为quosure,您可以使用rlang包中的sym完成此操作。所以用 ...
您可以使用if_else()或case_when()函数:首先,一个可复制的例子:
千万不要在dplyr管道中使用$,它们很少使用。您可以将FND函数更改为:
我认为您必须将RHS字符串转换为quosure,您可以使用rlang包中的sym完成此操作。所以用 ...
Usually when I write my own code, I try to make my functions vectorized, so that you can call them with both a single element or with a vector. But in this case, I wasn’t allowed to modify the code to make the function vectorized. So how do we easily vectorizepatient_name()without...
namespace:dplyr with valuefunction(df,dots){.Call(`_dplyr_mutate_impl`,df,dots)} .Call函数是C/C++代码的交互界面,负责调用_dplyr_mutate_impl模块,传入的就是数据框和dots对象。 R语言部分的代码到此就结束了,因为后续就是调用C/C++代码编译后的函数。