r - 如何在函数内分配列?
问题描述
我在数据集ecr中有这个函数,它将一列ecr作为字符串并适当地更改每个值:
ctrc <- function(x) {
(ecr[[x]]-mean(ecr[[x]]))/sd(ecr[[x]])
}
然后它将值打印到控制台。我想将此函数的结果分配给ecr中的一列。但是,我尝试过的任何事情都没有导致这种情况发生。一些例子:
ctrc <- function(x) {
ecr$var2 <- (ecr[[x]]-mean(ecr[[x]]))/sd(ecr[[x]])
}
mctrc <- function(y) {
mutate(ecr, var2=ctrc("y"))
}
我如何让这个功能工作,为什么这些版本不工作?
解决方案
除非您有非常充分的理由,否则不要将列名作为输入传递给函数,而是传递值。
ctrc <- function(x) (x-mean(x))/sd(x)
然后您可以将其称为:
library(dplyr)
ecr %>% mutate(var2 = ctrc(y))
或多列
ecr %>% mutate(across(c(y, z), ctrc))
推荐阅读
- python - Django - 将 ModelTranslation 添加到已注册的模型中
- css - Joomla 上的 ecwid:具有特定 ID 的 div 内的 15 级 CSS 目标元素
- php - WooCommerce 展示产品相关产品
- json - 如何将 git log -p 获取为 json
- r - 从列中具有多个条目的数据框中删除行
- c# - 在 .NET 中添加授权后的 Swagger 问题
- gpu - 如何使用英伟达 Tesla K80
- javascript - 带有 html 标记的 Yammer 消息无法正确呈现
- sql - SQL Join - 给我多个值
- javascript - 这个javascript代码中零“[0]”的数组有什么意义