r - 使用 lapply 嵌套列表

标签 r

我有一个下一个结构数据帧 qw[[i]],i = 19(嵌套列表)。例如:

dput(qw[[19]])
list(c(87.6755555555556, 36, 117.277222222222, 64.7858333333333
), c(46.44, 19.4966666666667, 207.101666666667, 92.5783333333333)
...

而且我不知道如何使用 lapply (X, FUN =norm) 来计算每个 block 的norm:

list(c(87.6755555555556, 36, 117.277222222222, 64.7858333333333)
qnw <- lapply(matrix(unlist(qw)), FUN = norm)

在我得到同样的错误后:

Error in FUN(X[[i]], ...) : 'A' must be a numeric matrix

如何解决?

最佳答案

它看起来像是一个向量的嵌套列表。我们可以使用递归apply (rapply)

rapply(qw, f = \(x) norm(matrix(x)))

或者使用嵌套的sapply/lapply

as.vector(sapply(qw, \(x) sapply(x, \(y) norm(matrix(y)))))

关于r - 使用 lapply 嵌套列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71414767/

相关文章:

r - 匹配 2 个几乎相同的数据帧相等

r - 构建 data.table 列表列的滚动聚合

r - R中的大协方差矩阵

r - dplyr::if_else() 没有正确运行一个函数作为结果,而 base ifelse() 运行得很好。为什么?

r - 替换列r中的多个值

r - 有没有办法将 knitr chunk 和 knit 选项实现为 R Markdown 的项目范围环境或配置文件?

regex - 使用 gsub 从开始到第一次出现字符抓取

在 R 中读取 csv +unicode

r - 函数内公式错误

r - 在 R 中从头开始计算自相关函数