【问题标题】:Can lapply and sapply functions be used on a matrix or data frame with different base functions of R? [duplicate]lapply 和 sapply 函数可以用于具有不同 R 基函数的矩阵或数据帧吗? [复制]
【发布时间】:2021-05-08 15:50:12
【问题描述】:

尝试使用函数 rowSums 在给定矩阵上使用 lapplysapply

给定矩阵;

mat <- matrix(1:9, ncol = 3, nrow = 3)

当我使用lapply(mat, rowSums) 时,它应该计算所有行的总和。

但是显示错误

FUN(X[[i]], ...) 中的错误: 'x' 必须是至少有两个维度的数组 调用:sapply -> lapply -> FUN 执行停止

我哪里做错了,请帮忙。

【问题讨论】:

  • 你可以使用rowSums(mat)
  • 谢谢,但我是 R 编程新手,并试图了解应用函数系列的使用和应用。

标签: r


【解决方案1】:

你可以使用矩阵apply:

apply(mat, 1, sum)

参数1表示你正在对行执行sum函数(2对列)

【讨论】:

  • 谢谢,但这是否意味着 lapply 和 sapply 函数不能使用 matix 或 dataframe 作为输入?
  • lapplysapply 将向量或列表作为输入,而不是矩阵或数据帧。您可以在要执行的函数内使用数据框,但不能作为输入;例如,假设有一个数据框 df 有 5 列 lapply (1:5, function (x) df[[i])
  • 谢谢,你能告诉我应用族函数比循环有什么帮助吗?我无法理解这件事..
  • 不幸的是,您提出的问题没有几行的答案。我建议你慢慢练习,不时尝试一个应用apply家庭功能的问题。练习时,首先使用for 循环,然后尝试用apply(或tidyverse)系列中的函数替换它们。我给你一个很好的起点:stackoverflow.com/questions/3505701/…
  • 非常感谢......感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2018-03-27
  • 1970-01-01
  • 1970-01-01
  • 2020-09-11
  • 1970-01-01
  • 1970-01-01
  • 2020-05-21
  • 2021-09-13
相关资源
最近更新 更多