多因素列的摘要
Summary of multiple factored columns
我正在尝试将数据框的多个列(每个列都包含具有相同级别的数据)汇总为更易于使用的格式。
我从一个类似于下面的数据框开始,在这个数据框中,不同的人对他们生活的许多方面都表示满意:
person=as.factor(c("Jack","Jack","John","Jill"))
job=as.factor(c("happy","sad","very happy","sad"))
home=as.factor(c("happy","sad","very happy","happy"))
car=as.factor(c("happy","sad","sad","happy"))
df<-data.frame(person,job,home,car)
我希望将其转换为以下格式:
我相信这将更容易在 R 中使用,并且对于 excel 中的其他用户。
我已尝试 melt/cast 数据并使用 table() 和 count() 函数,但我无法获得结果。
感觉像是一个骗局,但这是使用 reshape2::recast
的尝试,它只是一个 melt/dcast
包装器
library(reshape2)
recast(df, variable ~ value, id.var = 1L)
# Aggregation function missing: defaulting to length
# variable happy sad very happy
# 1 job 1 2 1
# 2 home 2 1 1
# 3 car 2 2 0
或者如果数据很大,我们也可以实现data.table
等效
library(data.table)
dcast(melt(setDT(df), 1L), variable ~ value)
# Aggregate function missing, defaulting to 'length'
# variable happy sad very happy
# 1: job 1 2 1
# 2: home 2 1 1
# 3: car 2 2 0
在这两种方法中,您可以为不同的聚合函数指定 fun.aggregate =
。
我正在尝试将数据框的多个列(每个列都包含具有相同级别的数据)汇总为更易于使用的格式。
我从一个类似于下面的数据框开始,在这个数据框中,不同的人对他们生活的许多方面都表示满意:
person=as.factor(c("Jack","Jack","John","Jill"))
job=as.factor(c("happy","sad","very happy","sad"))
home=as.factor(c("happy","sad","very happy","happy"))
car=as.factor(c("happy","sad","sad","happy"))
df<-data.frame(person,job,home,car)
我希望将其转换为以下格式:
我相信这将更容易在 R 中使用,并且对于 excel 中的其他用户。
我已尝试 melt/cast 数据并使用 table() 和 count() 函数,但我无法获得结果。
感觉像是一个骗局,但这是使用 reshape2::recast
的尝试,它只是一个 melt/dcast
包装器
library(reshape2)
recast(df, variable ~ value, id.var = 1L)
# Aggregation function missing: defaulting to length
# variable happy sad very happy
# 1 job 1 2 1
# 2 home 2 1 1
# 3 car 2 2 0
或者如果数据很大,我们也可以实现data.table
等效
library(data.table)
dcast(melt(setDT(df), 1L), variable ~ value)
# Aggregate function missing, defaulting to 'length'
# variable happy sad very happy
# 1: job 1 2 1
# 2: home 2 1 1
# 3: car 2 2 0
在这两种方法中,您可以为不同的聚合函数指定 fun.aggregate =
。