在R中的dcast中保留变量
我正在使用R中的在R中的dcast中保留变量,r,R,我正在使用R中的dcast函数将长格式数据集转换为宽格式数据集。我有一个ID编号、一个分类变量(CAT)和一个连续变量(AMT)。但是,我还有一个变量SEX,它对于给定ID编号的所有行都是相同的。这段代码用于创建宽格式数据集,但我丢失了SEX。我怎样才能保留它 PC1cast <- dcast(PC1, ID~CAT, value.var='AMT', fun.aggregate=sum, na.rm=TRUE) 为此,您需要在公式的ID端添加SEX: dcast(PC1, ID + S
dcast
函数将长格式数据集转换为宽格式数据集。我有一个ID
编号、一个分类变量(CAT
)和一个连续变量(AMT
)。但是,我还有一个变量SEX
,它对于给定ID
编号的所有行都是相同的。这段代码用于创建宽格式数据集,但我丢失了SEX
。我怎样才能保留它
PC1cast <- dcast(PC1, ID~CAT, value.var='AMT', fun.aggregate=sum, na.rm=TRUE)
为此,您需要在公式的
ID
端添加SEX
:
dcast(PC1, ID + SEX~CAT, value.var='AMT', fun.aggregate=sum, na.rm=TRUE)
# results in:
ID SEX A B C
1 1 Female 46 22 31
2 2 Male 17 25 44
公式左侧的内容保持原样,右侧的内容进行转换。我添加了一些额外的数据行,以澄清其中的一些部分。但要点是,你只需要把
SEX
放在左手边(即~
):
PC2请不要交叉发帖。我认为链接的问题应该是这个问题的重复,因为这个问题更完整data@RichardScriven是的,我收回了我的投票。
dcast(PC1, ID + SEX~CAT, value.var='AMT', fun.aggregate=sum, na.rm=TRUE)
# results in:
ID SEX A B C
1 1 Female 46 22 31
2 2 Male 17 25 44
PC2 <- read.table(text="ID CAT AMT SEX
1 A 46 Female
1 B 22 Female
1 C 31 Female
2 A 17 Male
2 B 25 Male
2 C 44 Male
3 A 47 Female
3 B 27 Female
3 C 37 Female
4 A 17 Male
4 A 17 Male
4 B 22 Male
4 B NA Male
4 C 44 Male", header=T)
library(reshape2)
PC1cast2 <- dcast(PC2, ID+SEX~CAT, value.var='AMT', fun.aggregate=sum,
na.rm=TRUE)
PC1cast2
# ID SEX A B C
# 1 1 Female 46 22 31
# 2 2 Male 17 25 44
# 3 3 Female 47 27 37
# 4 4 Male 34 22 44