r - 在 R 中更新用户定义函数中的某些列值
问题描述
我有以下代码可以用中值更新 R 中数据框中的列。这很好用,但我希望能够从程序的其他部分调用它作为函数,传递其他数据帧和列。
medianVal <- median(df$column, na.rm = T)
df$column[is.na(df$column)] <- medianVal
我尝试使用的代码的逻辑是传递数据帧和列,获取中值,更新并返回数据帧
updateWithMedian <- function(DataFrame, Column)
{
medianValue <- median(Column, na.rm = T)
Column[is.na(DataFrame$Column)] <- medianValue
return(DataFrame)
}
函数中的 DataFrame[[Column]] 帮助我识别列,但我仍在努力将 NA 值更新为中位数。
例如,代码
DataFrame[[Column]][is.na(DataFrame$Column)] <- medianValue
感觉像是正确的语法。
解决方案
你在这里混合符号。如果使用带引号的列名,则不能使用dataframe$variable
这种表示法。试试那个(未经测试的)解决方案:
updateWithMedian <- function(df, colname)
{
medianValue <- median(df[,colname], na.rm = T)
df[is.na(df[,colname]), colname] <- medianValue
return(df)
}
推荐阅读
- django - 如何在 Django 中有一个只能超级编辑的字段?
- xml - 需要 XSLT 转换来计算从应用模板返回的元素
- javascript - 创建大小为枚举道具的按钮
- mingw-w64 - 在 MinGW64 中音译 C 字符串会中断引用
- javascript - 如果名字和姓氏在不同的列中,如何按全名进行 Ajax 搜索?
- c# - 使用 Linq 表达式选择数据作为另一个 Linq 表达式中的子表达式
- react-native - 为什么我在更新由 RCTView 管理的视图的属性‘native BackgroundAndroid’时遇到错误”
- c# - 局部视图中的 Dotnetcore mvc 动态绑定
- html - Tailwind CSS 表格标题不尊重 text-right
- vuetify.js - Vuetify 面包屑文本颜色