【发布时间】:2015-05-22 20:15:53
【问题描述】:
我有一个包含 2 个数据集的列表。
a = data.frame(c(1,1,1,1,1,2,2,2,2,2), c("a","b", "c", "d","e","e","f", "g", "h","i"))
colnames(a) = c("Numbers","Letters")
c = data.frame(c(3,3,3,3,3,4,4,4,4,4), c("q","r", "s", "t","u","u","v", "w", "x","y"))
colnames(c) = c("Numbers","Letters")
my.list = list(a,c)
my.list
我有兴趣只返回在每个数据集的唯一编号之间找到的共同字母。期望的结果如下所示:
new_a = data.frame(c(1,2),c("e","e"))
new_c = data.frame(c(3,4),c("u","u"))
colnames(new_a) = c("Numbers","Letters")
colnames(new_c) = c("Numbers","Letters")
my.new.list = list(new_a,new_c)
my.new.list
如您所见,字母“e”是数据集 1 中数字“1”和“2”共享的唯一常见字母,而字母“u”是数据集中数字 3 和 4 共享的唯一常见字母2.
我正在尝试为一个非常大的列表执行此操作。为了让您了解我的真正问题,我有一个列表,其中每个元素都是一个状态。在每个州,我都有多个资产经理或“账户”,每个账户都有多个代码。我正在尝试查找每个地理位置的帐户共有的代码。在上面的例子中,数字是账户,字母是股票代码,列表中包含的两个数据集是两个不同的状态。我希望这有助于解决我的问题。
谢谢!
【问题讨论】:
-
c是一个非常常用的函数,因此您可能不想将其用作其他名称。 -
我对您的描述有疑问。假设如果数据集被扩展为包含更多类别的“数字”,即
a1 <- rbind(a, a[1:5,]); a1$Numbers[11:15] <- 3; a1$Letters[15] <- 'f',基于新数据集a1的预期结果是什么@
标签: r list duplicates subset