gpt4 book ai didi

R:对列表中每个列表的元素求和,并在数据框中返回结果

转载 作者:行者123 更新时间:2023-12-02 09:36:02 24 4
gpt4 key购买 nike

我有 R 中的列表列表;每个列表都有 Grep 命令的结果,指示找到搜索字符串的位置。命令

> matches<-lapply(ListOfFiles, function(x)
+ grep("SearchString",readLines(x),ignore.case = T))

产生

//I copy the results that the function actually yields for the sake of the example

> matches<-list(c(11L, 13L), c(9L, 12L, 14L, 15L, 16L, 19L, 20L, 22L, 25L
+ ), c(5L, 8L, 11L), c(10L, 11L, 13L, 14L, 16L), c(5L, 7L, 9L),
+ integer(0))

> matches
[[1]]
[1] 11 13

[[2]]
[1] 9 12 14 15 16 19 20 22 25

[[3]]
[1] 5 8 11

[[4]]
[1] 10 11 13 14 16

[[5]]
[1] 5 7 9

[[6]]
integer(0)

我需要将其转换为 6 行 1 列的简单数据框,每个“单元格”具有 6 个匹配列表中每一个的总和。

如果可能的话,请尝试解释我应该使用的语法;我是 R 新手,有时我发现如果同时嵌套多个内容,示例就很难理解。

最佳答案

其实只是我自己想出来的。答案是:

data.frame(unlist(lapply(matches, function(x) sum(x))))

第一部分产生一个列表列表,每个列表包含一个元素,每个列表元素的总和

> lapply(matches, function(x) sum(x))
[[1]]
[1] 24

[[2]]
[1] 152

[[3]]
[1] 24

[[4]]
[1] 64

[[5]]
[1] 21

[[6]]
[1] 0

第二部分从中生成一个向量。显然这是一个递归函数:

> unlist(lapply(matches, function(x) sum(x)))
[1] 24 152 24 64 21 0

最后使用data.frame()函数将其转换为数据帧。

关于R:对列表中每个列表的元素求和,并在数据框中返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26183929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com