【发布时间】:2018-04-04 02:36:40
【问题描述】:
segment1<-c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
segment2<-c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2)
rating <-c(1,1,2,2,1,3,1,1,2,2,3,2,2,2,1,1,2,3,3,1,1,2,3,2)
data<-data.frame(segment1,segment2,rating)
df1<-aggregate(
x = data.frame(list("count"=data$rating)),
by = data.frame(list("segment1"=data$segment1, "segment2"=data$segment2, "rating"=data$rating)),
FUN = length
)
df2<-aggregate(
x = data.frame(list("count"=df1$count)),
by = data.frame(list("segment1"=df1$segment1, "segment2"=df1$segment2)),
FUN = sum
)
df2$rating1<-0
df2$rating2<-0
df2$rating3<-0
df1
分段 1 分段 2 评分计数 1 1 1 1 6 2 1 2 1 3 3 1 1 2 7 4 1 2 2 3 5 1 1 3 2 6 1 2 3 3df2
分段 1 分段 2 计数 评分 1 评分 2 评分 3 1 1 1 15 0 0 0 2 1 2 9 0 0 0我需要 df2 的这个输出
分段 1 分段 2 计数 评分 1 评分 2 评分 3 1 1 1 15 6 7 2 2 1 2 9 3 3 3【问题讨论】:
-
分数和平均值是如何计算的?为
rating_x列更新您想要的输出也是一个好主意,让我们更好地了解您想要什么。 -
请在此处了解如何正确提问。帮助我们为您提供帮助。
-
请以更容易读入 R 的格式提供您的示例数据,例如使用
dput(),阅读here 如何改进您的问题。 -
如果您的数据集比您的示例大(即,segment1 具有不同的值),此解决方案肯定需要修改,但是,使用
df2$rating1 = df1[df1$rating==1,]$count、df2$rating2 = df1[df1$rating==2,]$count、df2$rating3 = df1[df1$rating==3,]$count会产生您的输出想要。
标签: r function dataframe aggregate