gpt4 book ai didi

r - 如何根据 R 生成的表创建新的数据框?

转载 作者:行者123 更新时间:2023-12-04 12:05:22 26 4
gpt4 key购买 nike

我得到一个包含数千行和几列的 csv 文件。请参阅以下文件的示例:

Subject     Duration    
A 1.3
B 6.7
C 3.2
A 2.5
D 2.7
E 99
F 8.4
G 12.5
H 19.7
Z 3.2
A 56
B 9.4
. .
. .
. .

请注意,对于同一主题,持续时间可能会有所不同。我想将每个特定主题的持续时间相加,例如,我想知道主题 A 的总持续时间、主题 B 的总持续时间等。我有太多的主题标题,以至于我无法手动输入每个主题并要求答案。我想找出每个主题的持续时间总和,然后创建一个新的数据框或新文件,其中主题名称对应于总持续时间。

提前非常感谢你!!!!!!

最佳答案

这是一个可能有效的基本版本。我从 Karsten 那里借用了这个例子。

我实际做的是根据subject拆分data.frame。这会产生一个列表

split(d, d$subject)

$A
subject duration
1 A 1.3
4 A 2.5
11 A 56.0

$B
subject duration
2 B 6.7
12 B 9.4

$C
subject duration
3 C 3.2

使用 lapply,我翻阅了每个列表元素并对 duration 列求和。我添加了 na.rm = TRUE,这样即使存在 NA,该函数仍然可以求和。

我在一行中介绍这个

lapply(split(d, d$subject), function(x) sum(x$duration, na.rm = TRUE))

$A
[1] 59.8

$B
[1] 16.1

$C
[1] 3.2

您可以 unlist 或将结果放入 data.frame 以将列表转换为更紧凑的内容。

unlist(lapply(split(d, d$subject), function(x) sum(x$duration, na.rm = TRUE)))
A B C D E F G H Z
59.8 16.1 3.2 2.7 99.0 8.4 12.5 19.7 3.2

关于r - 如何根据 R 生成的表创建新的数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6630800/

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