我想将我的数据转换成彼此相邻的不同直方图(可能是multhist
)。
我的数据现在看起来像:
Code Pt
0 5
0 0
0 2
1 0
1 3
1 1
30 0
30 6
30 2
等等。 每个代码编号代表一个物种,我想绘制每个物种(代码编号)彼此相邻的Pt的直方图。 因此,我希望将数据重新整形为:
Code Pt
0 5
0 5
0 5
0 5
0 5
0 0
0 2
0 2
1 0
1 3
1 3
1 3
等等。
我已经尝试了
hp<-read.table("C:/Users/file.csv", header=T, sep=";")
hp$Code<-as.factor(hp$Code)
with(hp,data.frame(
Code=rep(Code,Pt),Ptdet=rep(Pt,Code)))
但我得到错误:参数意味着不同的行数。也许这是由于&#34; 0&#34;在我的数据框架中? 可能这是一件容易的事情,尽管如此,我仍然很感激,并且感谢你的帮助。
答案 0 :(得分:1)
您可以尝试:
library(data.table)
setDT(df)[,rep(Pt, max(Pt,1)),by=.(Code, Pt)][,.(Code, Pt)]
# Code Pt
# 1: 0 5
# 2: 0 5
# 3: 0 5
# 4: 0 5
# 5: 0 5
# 6: 0 0
# 7: 0 2
# 8: 0 2
# 9: 1 0
#10: 1 3
#11: 1 3
#12: 1 3
#13: 1 1
#14: 30 0
#15: 30 6
#16: 30 6
#17: 30 6
#18: 30 6
#19: 30 6
#20: 30 6
#21: 30 2
#22: 30 2