我正在尝试进行一些文本处理,并且需要重新编码句子的单词,以便在新变量中以特定方式识别目标单词。例如,给定一个看起来像这样的数据框......
subj <- c("1", "1", "1", "2", "2", "2", "2", "2")
condition <- c("A", "A", "A", "B", "B", "B", "B", "B")
sentence <- c("1", "1", "1", "2", "2", "2", "2", "2")
word <- c("I", "like", "dogs.", "We", "don't", "like", "this", "song.")
d <- data.frame(subj,condition, sentence, word)
subj condition sentence word
1 A 1 I
1 A 1 like
1 A 1 dogs.
2 B 2 We
2 B 2 don't
2 B 2 like
2 B 2 this
2 B 2 song.
我需要创建一个新列,其中目标单词的每个实例(在此示例中,当 d$word="like" 时)都标记为 0,并且句子块中“like”之前的所有单词和“之后的所有单词”都会递减像”增量。每个主题都有多个句子,句子因条件而异,因此循环需要考虑每个主题、每个句子的目标词实例。最终结果应该是这样的。
subj condition sentence word position
1 A 1 I -1
1 A 1 like 0
1 A 1 dogs. 1
2 B 2 We -2
2 B 2 don't -1
2 B 2 like 0
2 B 2 this 1
2 B 2 song. 2
对不起,如果问题措辞不好,我希望它是有道理的!请注意,每个句子中的目标不在同一个位置(相对于句子的开头)。我对 R 很陌生,可以弄清楚如何增加或减少,但不能在每个句子块中同时做这两件事。关于解决此问题的最佳方法有什么建议吗?非常感谢!