首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串值转换为频率计数

将字符串值转换为频率计数
EN

Stack Overflow用户
提问于 2020-05-21 20:59:05
回答 1查看 81关注 0票数 0

我对R比较陌生,我正在努力重新组织data.table中的一张表。目前该表如下:

代码语言:javascript
复制
species number snow_depth
wolf      3          5
wolf      1          5
wolf      1          5
coyote    1          30
coyote    1          30

我尝试这样设置它:

代码语言:javascript
复制
coyote   wolf   snow depth
 0          3         5
 0          1         5
 0          1         5
 1          0        30

等。考虑到使用ggplot2在x轴上有积雪深度,在y轴上有频率计数,两个物种有2条线。

我试过了

代码语言:javascript
复制
>DT %>% separate(species, c("wolf", "coyote"))

而是得到下面的输出

代码语言:javascript
复制
     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

当我输入这个(从互联网上复制过来)的时候,我也得到了错误信息。

代码语言:javascript
复制
> separate(DT, species, sep = "[^[:alnum:]]+", remove=TRUE, convert=FALSE)

有人能告诉我我哪里做错了吗?提前感谢

编辑-不幸的是,我在使用该代码时遇到错误。绘制两条线的计划是,每个雪深占一个时间段,在这个时间点上,记录了x只郊狼和x只狼,因此每个物种在每个雪深出现的频率。所以每个积雪深度有2个数据点,1=郊狼2=狼。这回答了问题吗?如果我误解了很抱歉

EN

回答 1

Stack Overflow用户

发布于 2020-05-22 07:11:44

下面是一个使用data.table的选项

代码语言:javascript
复制
DT[, rn := .I]
dcast(DT, rn + snow_depth ~ species, fill=0L, value.var="number")

输出:

代码语言:javascript
复制
   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    0
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61935061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档