【发布时间】:2016-10-20 06:59:33
【问题描述】:
我有两个数据框:
data <- data.frame(ID1 = c("D1","D1","D1","D1","D2","D2"),
ID3 = c("A","A","D","D","B","C"),
Attribute = c("KL","KM","KL","KM","AB","AB"),
Value = c(2,2,3,3,5,7))
data_new <- data.frame(ID1 = c("D1","D1","D2","D2"),
ID2 = c("D1-1","D1-1","D2-1","D2-1"),
Attribute = c("KL","TA","AB","AA"))
现在我想将数据中的Values 和ID3 合并到我的新数据框中。此外,我想删除一些属性并添加新属性。输出应如下所示:
expected_output <- data.frame(ID1 = c("D1","D1","D1","D1","D2","D2","D2","D2"),
ID2 = c("D1-1","D1-1","D1-1","D1-1","D2-1","D2-1","D2-1","D2-1"),
ID3 = c("A","A","D","D","B","B","C","C"),
Attribute = c("KL","TA","KL","TA","AB","AA","AB","AA"),
Value = c(2,2,3,3,5,5,7,7))
谁能帮我解决这个问题?
到目前为止,我尝试的是一个简单的合并。
mergeddata <- merge(data_new,data,
by.x = c("ID1"),
by.y = c("ID1"))
ID1 = D2 的结果看起来很有希望我只需要删除列 Attribute.x"。但是 ID = D1 不是我想要的。第 5-8 行不应再出现在新表中。
有什么帮助吗?
【问题讨论】:
-
不清楚您要做什么。从data和data_new到expected_output的思路是什么?
-
假设 ID1 是基金 (ID3) 中的一种证券,该证券 (ID1) 具有一些属性,每个基金都有一个价值(头寸)。现在证券的属性发生了变化 (data_new) 并且他们获得了一个基于 ID1 的新 ID (ID2)。目标是使用新属性更新数据,但保留位置和值。是不是更清楚了?