首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同时计数几组的频率

同时计数几组的频率
EN

Stack Overflow用户
提问于 2016-04-17 12:59:16
回答 1查看 51关注 0票数 0

我正在追踪同行评审文献中许多研究领域的处理情况,并已处理了近1500篇论文。在我的数据文件中,我有25个主题的列,在数据文件中注释了1(存在)和0(缺勤)。数据文件大致如下所示:

代码语言:javascript
复制
TITLE AUTHORS JOURNAL YEAR ... TOPIC1 TOPIC2 TOPIC3 TOPIC4 ... TOPIC25
'xxx'  'yyy'    'zzz' 2002          1      0      0      1           0
'xxx'  'yyy'    'zzz' 2012          0      0      0      0           1
'xxx'  'yyy'    'zzz' 2002          0      0      1      1           0
'xxx'  'yyy'    'zzz' 2015          1      0      0      0           0
'xxx'  'yyy'    'zzz' 2015          0      0      0      0           0
'xxx'  'yyy'    'zzz' 2013          0      0      1      1           1
'xxx'  'yyy'    'zzz' 2012          1      0      0      0           0
'xxx'  'yyy'    'zzz' 2012          0      0      1      0           1

我需要统计一下论文中各种主题的频率,最后得到如下的数据框架:

代码语言:javascript
复制
TOPIC  count
TOPIC1    7
TOPICS2  19
.
.
TOPIC25  15

我一直在谷歌上搜索、阅读和尝试一些不同的东西,但是到目前为止没有什么效果,因此没有发布任何代码。

任何帮助都很感激..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-17 13:12:09

我们可以遍历感兴趣的列,让sumstack创建两个列‘data.framework’。

代码语言:javascript
复制
res <- setNames(stack(lapply(df1[grep("^TOPIC\\d+", names(df1))],
          sum))[2:1], c("TOPIC", "count"))
head(res,2)
#   TOPIC count
#1 TOPIC1     7
#2 TOPIC2     19

如果列名没有任何模式,则使用列索引对列进行子集,即假设POPABU是第5列,而POPGEN是最后一列,

代码语言:javascript
复制
res <- setNames(stack(lapply(df1[5:ncol(df1)],
          sum))[2:1], c("TOPIC", "count"))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36676827

复制
相关文章

相似问题

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