r - 一次从变量中删除一个数据元素(值)并在 R 中执行函数
问题描述
我正在尝试在 R 中编写允许我执行以下操作的代码:
从较大数据框中的变量(列)中删除第一个数据元素(值)。
在完整数据帧上运行一个函数(删除步骤 1 中的数据元素)。
对列中的其余数据元素重复此过程。
我已经尝试了以下代码并运行它而没有收到错误。然而,从结果中可以清楚地看出,数据元素并没有按照需要被连续删除。
对于上下文,我的数据框 (df) 是 50x18,我尝试从第 2 步运行的函数是多重插补函数。这是我的代码:
procedure <- function(x) {
x <- NA
mice(df, m = 5, maxit = 5, method = "norm", pred = pred_matrix, seed = 2019)
}
results <- lapply(df$variable, procedure)
根据需要,此代码生成一个包含 50 组输出的列表。但是,它似乎在相同的数据帧上执行了 50 次该过程。因此,我的问题是:为什么我的代码没有遍历数据变量中的每个元素并在运行过程之前将其删除?我不是要缩小数据框(删除一行)。相反,对于变量中的每个值 (x),我想将值设为“NA”(丢失),然后执行该过程。
提前致谢!
解决方案
假设 的元素df$variable
是唯一的,以下应该起作用:
procedure <- function(x) {
df1 <- df
df1[df1$variable == x,"variable"] <- NA
mice(df1, m = 5, maxit = 5, method = "norm", pred = pred_matrix, seed = 2019)
}
results <- lapply(df$variable, procedure)
如果它们不是唯一的,您可以按如下方式遍历索引:
procedure <- function(x) {
df1 <- df
df1[x,"variable"] <- NA
mice(df1, m = 5, maxit = 5, method = "norm", pred = pred_matrix, seed = 2019)
}
results <- lapply(1:length(df$variable), procedure)
推荐阅读
- jenkins - 不在 Master 上但仅在 Build Agent 上执行构建作业/管道
- python - 是否可以从 Python 读取 Windows 中的防火墙规则?
- python - 无需中间事件调度即可更改多个 kivy 属性
- python - 如何使用 python-docx 从文档中提取标题编号?
- python - 如何有效地进行 rasa nlu、故事数据验证和更新?
- c - 检测运行时是否正在使用调试器
- kubernetes - 如何从 HA 集群和 etcd 集群中删除主节点
- python - 绘制按值分组的德莱尼三角剖分
- perl - 使用 `atom` 运行 perl 代码会抛出未定义的子例程 &main::send_request
- mysql - 具有限制冲突的光标分页