R 将二项式数据重塑为长贝努利格式
一年后我回到R,想用rpart做一个分类树 我的数据如下所示:R 将二项式数据重塑为长贝努利格式,r,dataframe,reshape,rpart,R,Dataframe,Reshape,Rpart,一年后我回到R,想用rpart做一个分类树 我的数据如下所示: Category, Shape, Color, Yes, No A, Square, Blue, 3, 2 B, Triangle, Blue, 2, 4 etc. 有什么建议可以改成下面的格式,这样我就可以使用rpart了?(我认为rpart需要这样的数据) 谢谢大家! 您可以从restrape2使用melt,然后使用rep s=melt(df,id.var=c('Category','Shape','Color')) s[
Category, Shape, Color, Yes, No
A, Square, Blue, 3, 2
B, Triangle, Blue, 2, 4
etc.
有什么建议可以改成下面的格式,这样我就可以使用rpart了?(我认为rpart需要这样的数据)
谢谢大家! 您可以从
restrape2
使用melt
,然后使用rep
s=melt(df,id.var=c('Category','Shape','Color'))
s[ rep( 1:nrow(s) , s$value ),]
Category Shape Color variable value
1 A Square Blue Yes 3
1.1 A Square Blue Yes 3
1.2 A Square Blue Yes 3
2 B Triangle Blue Yes 2
2.1 B Triangle Blue Yes 2
3 A Square Blue No 2
3.1 A Square Blue No 2
4 B Triangle Blue No 4
4.1 B Triangle Blue No 4
4.2 B Triangle Blue No 4
4.3 B Triangle Blue No 4
melt
将数据转换为长格式,然后重复变量在值列中出现的次数
library(data.table)
melt(setDT(dat),1:3)[,rep(variable,value),by=.(Category,Shape,Color)]
Category Shape Color V1
1: A Square Blue Yes
2: A Square Blue Yes
3: A Square Blue Yes
4: A Square Blue No
5: A Square Blue No
6: B Triangle Blue Yes
7: B Triangle Blue Yes
8: B Triangle Blue No
9: B Triangle Blue No
10: B Triangle Blue No
11: B Triangle Blue No
使用:
图书馆(tidyverse)
dat%>%
行()
变异(var=list(rep(c(“是”、“否”)、c(是、否)))%>%
选择(-Yes,-No)%%>%
unnest()
类别形状颜色变量
一个正方形的蓝色是的
2个正方形的蓝色是的
3一个正方形的蓝色是的
4一个正方形的蓝色不
5一个正方形的蓝色不
6B三角蓝是的
7B三角蓝是的
8B三角蓝号
9B三角蓝号
10B三角蓝号
11 B三角蓝号
library(data.table)
melt(setDT(dat),1:3)[,rep(variable,value),by=.(Category,Shape,Color)]
Category Shape Color V1
1: A Square Blue Yes
2: A Square Blue Yes
3: A Square Blue Yes
4: A Square Blue No
5: A Square Blue No
6: B Triangle Blue Yes
7: B Triangle Blue Yes
8: B Triangle Blue No
9: B Triangle Blue No
10: B Triangle Blue No
11: B Triangle Blue No
dat%>%
rowwise()%>%
mutate(var=list(rep(c("Yes","No"),c(Yes,No))))%>%
select(-Yes,-No)%>%
unnest()
Category Shape Color var
<fct> <fct> <fct> <chr>
1 A Square Blue Yes
2 A Square Blue Yes
3 A Square Blue Yes
4 A Square Blue No
5 A Square Blue No
6 B Triangle Blue Yes
7 B Triangle Blue Yes
8 B Triangle Blue No
9 B Triangle Blue No
10 B Triangle Blue No
11 B Triangle Blue No