【发布时间】:2017-03-22 15:11:11
【问题描述】:
my_list = list()
my_list[[1]] = c("Fast","Slow","Heavy","Light")
my_list[[2]] = c("Fast","Small","Intelligent","Light")
my_list[[3]] = c("Dumb","Slow","Heavy","Light")
my_list[[4]] = c("Slow","Intelligent","Dumb","Heavy")
my_list[[5]] = c("Heavy","Light","Intelligent","Tall")
这是我正在尝试做的简化版本,但是我如何过滤列表以便如果其中包含两个字符串(即快速和慢速,高和小,重和轻,最后,智能和 Dumb),然后可以将它们移除以留下具有合理向量的最终向量。
我一直在尝试使用 IF 函数来执行此操作,这是最合适的方式吗?
【问题讨论】:
-
我不确定我是否理解。此示例的所需输出是什么。 R 应该如何知道哪些词是相反/矛盾的?
-
唯一的输出是 my_list[[2]] 因为它没有下面列出的任何字符串对。快(不慢)、小(不高)、聪明(不笨)和轻(不重)。但基本上我想知道如何使用 IF 函数减少列表,以便删除包含两个特定单词的所有列表。
-
所以你需要类似
(a1 & b1) or (a2 & b2) or (a3 & b3) -
首先,将你的“矛盾字符串”放入一个 R 对象中,比如一个 data.frame ......最终(当你有这个健全的格式时)它可能就像合并一样简单,我猜。
-
没错就是这样