我对R比较陌生,我正在努力重新组织data.table中的一张表。目前该表如下:
species number snow_depth
wolf 3 5
wolf 1 5
wolf 1 5
coyote 1 30
coyote 1 30我尝试这样设置它:
coyote wolf snow depth
0 3 5
0 1 5
0 1 5
1 0 30等。考虑到使用ggplot2在x轴上有积雪深度,在y轴上有频率计数,两个物种有2条线。
我试过了
>DT %>% separate(species, c("wolf", "coyote"))而是得到下面的输出
wolf coyote number snow_depth
1 wolf <NA> 3 5
2 wolf <NA> 1 5
3 wolf <NA> 1 5
4 coyote <NA> 1 30
5 coyote <NA> 1 30
6 coyote <NA> 1 30
7 coyote <NA> 1 25当我输入这个(从互联网上复制过来)的时候,我也得到了错误信息。
> separate(DT, species, sep = "[^[:alnum:]]+", remove=TRUE, convert=FALSE)有人能告诉我我哪里做错了吗?提前感谢
编辑-不幸的是,我在使用该代码时遇到错误。绘制两条线的计划是,每个雪深占一个时间段,在这个时间点上,记录了x只郊狼和x只狼,因此每个物种在每个雪深出现的频率。所以每个积雪深度有2个数据点,1=郊狼2=狼。这回答了问题吗?如果我误解了很抱歉
发布于 2020-05-22 07:11:44
下面是一个使用data.table的选项
DT[, rn := .I]
dcast(DT, rn + snow_depth ~ species, fill=0L, value.var="number")输出:
rn snow_depth coyote wolf
1: 1 5 0 3
2: 2 5 0 1
3: 3 5 0 1
4: 4 30 1 0
5: 5 30 1 0https://stackoverflow.com/questions/61935061
复制相似问题