gpt4 book ai didi

r - 如何使用 R lattice reshape 堆叠条形图的数据

转载 作者:行者123 更新时间:2023-12-05 08:58:09 25 4
gpt4 key购买 nike

<分区>

我在表中有一堆数据(从 csv 导入),格式如下:

date        classes         score
9/1/11 french 34
9/1/11 english 34
9/1/11 french 34
9/1/11 spanish 34
9/2/11 french 34
9/2/11 english 34
9/3/11 spanish 34
9/3/11 spanish 34
9/5/11 spanish 34
9/5/11 english 34
9/5/11 french 34
9/5/11 english 34

忽略分数栏,它不重要。

我需要根据日期计算参加英语、西类牙语或法语类(class)的学生总数,即。我需要先按日期对其进行分组,然后根据语言将每一天分成更多的 block ,并将其绘制为堆叠条形图,如下所示。每个条代表一个日期,条的每个横截面代表一种语言。

一旦我得到矩阵形式的数据,我就知道如何做到这一点,其中每一行代表一个日期,每一列代表一个属性(或语言)。所以我假设数据是 csv 中的那种形式:

ie           french      english       spanish
9/1/11 2 1 1
9/2/11 1 1 0
9/3/11 0 0 2
9/5/11 1 2 1

然后我可以做:

directory<-"C:\\test\\language.csv"
ourdata6<-read.csv(directory)

language<-as.matrix(ourdata6)

barchart(prop.table(language), horizontal=FALSE, auto.key = list(space='right',cex=.5,border=T,points=F, lines=F,lwd=5,text=c('french','spanish','enligsh'),cex=.6), main = list(label="Distribution of classes 10",cex=2.5), ylab = list(", cex=1.7),xlab.top=list("testing",cex=1.2))

挑战在于将数据从原始格式转换为我需要的格式。

我试过了

a<-count(language, c("date", "classes"))

它给我按两者排序的计数,但它是垂直形式

ie
9/1/11 french 2
9/1/11 english 1
9/1/11 spanish 1
etc...

我需要调整它,使其成为每个日期的一行。另外,如果其中一些可能为零,那么我需要它们的占位符,即。第一列必须对应法语,第二列必须对应英语才能使我当前的设置正常工作。

关于如何执行此操作的任何想法,或者我使用 matrix + prop.table 的方法是否正确?有没有更简单的方法来做到这一点?

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