【发布时间】:2016-11-07 17:22:30
【问题描述】:
我精通 Python,但在 R 方面完全是新手。我无法在网上其他地方找到这个问题的答案,虽然它会有点冗长,但我希望它对其他用户有用R 库RQDA.
本质上,RQDA 是一种定性研究工具,主要用于将代码(主题)分配给文本文件。这有点像荧光笔,它会计算它突出显示的位置。
如果你放入很多文件,你可以在不同的地方用不同的主题对文本进行编码(例如,一个关于采访在布料制造业工作的人的项目可能是“设备”、“缝纫”、“亚麻”、“丝绸” 、“照明”、“午休”等)。这使您可以计算使用了多少次不同的代码,并且在 RQDA 中它给出了如下表格输出:
rowid cid fid codenamefilename index1 index2 CodingLength
1 1 12 1 silk 2010-01-28 409 939 530
2 2 21 1 cotton 2010-01-28 1008 1172 164
3 3 12 1 silk 2010-01-28 1173 1924 751
4 4 39 1 sewing 2010-01-28 1008 1250 751
5 5 38 1 weaving 2010-01-28 1173 1924 751
6 6 78 1 costs 2010-01-28 727 939 212
7 7 23 1 lunch 2010-01-28 1553 1788 235
8 9 7 2 lunch 2010-01-29 1001 1230 371
9 10 4 2 weaving 2010-01-29 1547 1724 135
10 11 6 2 social 2010-01-29 1001 1290 350
11 12 7 2 silk 2010-01-29 1926 2276 350
12 14 17 2 supply 2010-01-29 1926 2276 350
13 15 78 2 costs 2010-01-29 1926 2276 350
14 17 78 2 weaving 2010-01-29 1890 2106 212
codename = 给定文本的代码(主题)
文件名 = 文本的文件名(在本例中为日记条目的日期)
index1 = 文件中代码开始的字符位置(突出显示的文本)
index2 = 文件中代码结束的字符位置(突出显示的文本)
CodingLength = 编码/突出显示文本的总长度
我想做的是用代码的总列表(上表中的代号,大约 100 个唯一代码)遍历整个表(大约 1,500 行),以输出 2 路矩阵代码之间的重叠,例如(仅供参考,有 5 个代码):
silk cotton sewing weaving lunch breaks socialising
silk * 0 0 3 2 0
cotton 0 * 5 0 0 0
sewing 0 5 * 0 0 0
weaving 3 0 0 * 0 0
lunchs 2 0 0 0 * 5
socialg 0 0 0 0 5 *
(代码在这个输出上有点乱,但希望你明白)
因此,在 R 中,我需要一些代码来遍历代码列表并计算 A) 文件名相同且 B) 在 index1 和 index2 之间的范围内重叠的实例数(CodingLength 可能并不重要)。
除了以下模糊的预感之外,我不知道究竟如何做到这一点:
-
我可能需要将表格指定为变量,例如:
coding_table
-
我可能需要列出唯一变量,例如:
x = c("丝绸","棉花","织布","缝纫","午餐" ...等)
我需要一个执行检查的函数
- 我需要一个用于行的 for 循环
- 我需要一个布尔测试来检查范围和文件名,例如任何(409:939 %in% 727:939)&& 文件名 == 文件名
基于此,任何人都可以找到一种方法来产生一个非常简短的解决方案吗?我觉得 python 中的等效项最多为 10 行,但考虑到 R 中所需的额外位,我完全不知道如何做到这一点。
【问题讨论】:
-
注:如果有人可以创建标签“RQDA”,我会这样标记。
标签: r matrix adjacency-matrix text-analysis