R 使用“ends_with”在列表上映射以应用自定义错误函数
我有一个列表,如下所示: 我正在尝试将映射到它上面,并使用mutate函数应用自定义函数。该列表称为R 使用“ends_with”在列表上映射以应用自定义错误函数,r,R,我有一个列表,如下所示: 我正在尝试将映射到它上面,并使用mutate函数应用自定义函数。该列表称为results,我想计算preds与数据帧中另一列之间的错误。所有列表中该列的共同主题是其中一列末尾的1 如何使用contain,以结尾或类似的方式计算自定义函数?列preds在所有数据帧中都是相同的 rse <- function(x, y){ sqrt((x - y)**2) } x <- map(results, ~mutate( error = rse(
results
,我想计算preds
与数据帧中另一列之间的错误。所有列表中该列的共同主题是其中一列末尾的1
如何使用contain
,以
结尾或类似的方式计算自定义函数?列preds
在所有数据帧中都是相同的
rse <- function(x, y){
sqrt((x - y)**2)
}
x <- map(results, ~mutate(
error = rse(ends_with("1"), preds)
))
我们在
数据的列表
上循环使用映射
框
('results'),然后使用mutate_at
修改名称为以
1结尾的列,方法是应用rse
函数,同时指定“y”为“preds”列
library(dplyr)
library(purrr)
results <- map(results, ~ .x %>%
mutate_at(vars(ends_with("1")), list(new = ~ rse(., y = preds))))
库(dplyr)
图书馆(purrr)
结果%
在(变量(以“1”结尾)、列表(新=~rse(,y=preds))处进行变异
请用dput
显示一个可复制的小示例。如果results
是data.frame
的list
,那么map(结果,~.x%>%mutate\u at(vars(以(“1”)结尾)、rse,y=preds))
我的列表太大,无法在这里发布。我将努力在一些名单中占据领先地位。哈,这比我想象的要容易Lappy(结果,头部)
给了我一个可复制的小例子。谢谢!但是rse计算存储在哪里?@user8959427。它正在更新名称以1结尾的列。如果需要创建新列,也可以这样做。请注意,只有当我现在看到结果时,对象“results”getss才会更新!谢谢是否可以将计算结果存储在其他列中?@user8959427我更新了帖子。在列表中
,只有一列的列名以“1”结尾。如果有更多,它将删除所有这些列并附加“new”作为后缀。由于只有一列,代码将创建新列“new”
library(dplyr)
library(purrr)
results <- map(results, ~ .x %>%
mutate_at(vars(ends_with("1")), list(new = ~ rse(., y = preds))))