gpt4 book ai didi

r - 从现有的、不足的数据帧在 R 中创建一个新的数据帧

转载 作者:行者123 更新时间:2023-12-04 16:18:19 25 4
gpt4 key购买 nike

这是一个非常简单的问题,但我不知道如何编写脚本。在我弄清楚之前,我无法前进。我对 R 和使用代码真的很陌生,我正在阅读几本介绍手册,但还没有找到针对这个特定问题的任何内容。

一般来说,这里是问题。假设我有一个名为 x 的数据框看起来像:

a <- c(1995,1995,1995,1996,1997,1997,1997,1998)
b <- c(1,2,3,1,2,3,4,1)
c <- c(5,7,8,2,4,5,7,8)
(x <- data.frame(a,b,c))
a b c
1 1995 1 5
2 1995 2 7
3 1995 3 9
4 1996 1 2
5 1997 2 4
6 1997 3 5
7 1997 4 7
8 1998 1 8

a 中的某些年份有多个条目(即 1995 出现 3 次),实际上我只想要每年一次。如果我尝试绘制列 a反列 c ,我最终会为每个日期得到多个点,但这没有帮助。我不在乎 b 列,但 我想对 c 列的条目求和每年,这样我最终会得到一个数据框,每年有一个条目 .鉴于上述数据,结果数据框将如下所示:
     a  c
1 1995 21
2 1996 2
3 1997 16
4 1998 8

有任何想法吗?

最佳答案

plyr 库对于诸如此类的聚合任务很有用。 plyrggplot2 一起玩也很好图形。在我看来,plyr 的好处是你明确定义了输入和输出的结构。这里我们传入了一个 data.frame对象并且还想要一个 data.frame处理后,我们将使用 ddply .第一个字母对应输入对象,第二个字母对应输出。所以如果我们想从 list 开始反对 data.frame ,我们会使用 ldply , 等等。

library(ggplot2) #Loads plyr

text <- "a b c
1995 1 5
1995 2 7
1995 3 9
1996 1 2
1997 2 4
1997 3 5
1997 4 7
1998 1 8
"

df <- read.table(textConnection(text), header = TRUE)

#Create plotData data.frame that groups by the "a" column and returns the sum of "c"
plotData <- ddply(df, "a", summarise, totalc = sum(c))

#plotting with ggplot
qplot(factor(a), totalc, data = plotData)

关于r - 从现有的、不足的数据帧在 R 中创建一个新的数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5205590/

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