我正在跟踪同行评议文献中许多研究领域的处理,并处理了近1500篇论文。在我的数据文件中,我有25个主题的列,在数据文件中注释1(存在)和0(不存在)。数据文件示意图如下所示:同时计算几个组的频率
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
我需要计算的各种主题的频率在报纸上,并用数据帧看起来像这样结束:
TOPIC count
TOPIC1 7
TOPICS2 19
.
.
TOPIC25 15
我一直在谷歌上搜索,阅读和尝试一些不同的东西,但迄今没有任何工作,因此没有发布代码。
任何帮助,不胜感激...
是否预期输出反映输入示例?也许'lapply(df1 [grep(“^ TOPIC \\ d +”,names(df1))],sum)' – akrun
我不确定你的意思,但名称并不是真正的TOPICS1:TOPIC25,但它们都有不同的名字 - > POPABU,POPTR,POPSTAT,HARV,CC,HAB,POLL,ZOO,PHYS,TEK等 – Dag
如果是这种情况,您应该在示例中说明。如果你没有指定它,我们怎么知道你在数据中有'POPABU','POPTR'等。所以,如果你知道列索引,而不是'grep',你可以做'lapply(df1 [5:ncol(df1)],sum)' – akrun