如何在R中不定义函数,用lapply删除列表中多个矩阵的指定列?
不用自定义函数删除列表中矩阵的指定列
当然可以不用单独定义函数,直接借助lapply搭配匿名函数就能实现,代码更紧凑:
示例数据准备
先创建你提供的示例数据:
m1 <- matrix(1:9, nrow = 3, ncol = 3) m2 <- matrix(1:9, nrow = 3, ncol = 3) m3 <- matrix(1:9, nrow = 3, ncol = 3) m_ls <- list(m1, m2, m3)
直接删除固定指定列(以第3列为例)
不用定义del函数,直接在lapply里写入匿名逻辑即可:
lapply(m_ls, function(mat) mat[, -3])
处理可变列数的情况
如果需要删除的列数不是固定值,还可以把列数作为参数传递,灵活性更高:
# 定义要删除的列序号 delete_col <- 3 # 通过lapply的额外参数传递列数 lapply(m_ls, function(mat, col) mat[, -col], col = delete_col)
这样就能在不定义独立函数的前提下,完成列表中所有矩阵指定列的删除操作。
内容的提问来源于stack exchange,提问作者user21573410
相关产品推荐
相关产品推荐

