R同时使用melt()和dcast()以及分类变量和数字变量

R同时使用melt()和dcast()以及分类变量和数字变量,r,melt,dcast,R,Melt,Dcast,我是R编程的新手,这是我在Stackoverflow上的第一个问题 假设我有一个包含4列的数据框: (1) 个人ID(数字) (2) 个人道德(因素) (3) 城市因素 (4) 拥有的图书数量(数字) 代码给出了此类表格的总和: names(mycounts)<-gsub("Morality_","",names(mycounts)) mycounts City Bad guy Good guy 1 NiceCity 3 2 2 UglyCity

我是R编程的新手,这是我在Stackoverflow上的第一个问题

假设我有一个包含4列的数据框:
(1) 个人ID(数字)
(2) 个人道德(因素)
(3) 城市因素
(4) 拥有的图书数量(数字)

代码给出了此类表格的总和:

names(mycounts)<-gsub("Morality_","",names(mycounts))
mycounts
      City Bad guy Good guy
1 NiceCity       3        2
2 UglyCity       2        3
姓名(mycounts)城市坏人好人书籍

#>1尼斯城3 2[尼斯城图书总数]


#>2丑陋城市2 3[丑陋城市的图书总数]

你的意思是这样的吗:

mydf%>%
融化(
idvars=c(“城市”),
measure.vars=c(“道德”)
) %>%
dcast(
城市~变量+值,
value.var=“图书”,
填充=0,
fun.aggregate=总和
)
#>城市道德·坏人道德·好人
#>1尼斯城18 42
#>2丑陋12 63

您好,谢谢您的回复。但这不是我的问题。如果我不够清楚,我道歉。我想得到一个表,其中两列是分类变量
道德
的每个类别的计数,第三列是数字变量
图书
在每个城市的总和。
缺少列%
)例如,对于您的代码,它不起作用。
mycounts<-melt(mydf,
               idvars = c("City"),
               measure.vars = c("Morality"))%>%
  dcast(City~variable+value,
        value.var="value",fill=0,fun.aggregate=length)
names(mycounts)<-gsub("Morality_","",names(mycounts))
mycounts
      City Bad guy Good guy
1 NiceCity       3        2
2 UglyCity       2        3