假设我有以下数据帧:
DF1 <- data.frame("A" = rep(c("A","B"), 18),
"B" = rep(c("C","D","E"), 12),
"NUM"= rep(rnorm(36,10,1)),
"TEST" = rep(NA,36))
DF2 <- data.frame("A" = rep("A",6),
"B" = rep(c("C","D"),6),
"VAL" = rep(c(1,3),3))
Run Code Online (Sandbox Code Playgroud)
*注意:变量A和Bin中的每个唯一组合DF2应该具有唯一性VAL.
对于每一行,我想,以取代NA在TEST与相应价值VAL的DF1,如果在列中的值A,并A匹配和列中的值B和B该行的比赛.否则,我会离开TEST的NA.如果不使用匹配循环每个组合,我将如何做到这一点?
理想情况下,答案将扩展到两个数据帧,其中有许多列要匹配.
我可以在MySQL中获取复合键的最后一个INSERT ID()吗?
我发现在Swift中使用带有复合主键的Realm这个很棒的解决方案:https://github.com/realm/realm-cocoa/issues/1192
public final class Card: Object {
public dynamic var id = 0 {
didSet {
compoundKey = compoundKeyValue()
}
}
public dynamic var type = "" {
didSet {
compoundKey = compoundKeyValue()
}
}
public dynamic lazy var compoundKey: String = self.compoundKeyValue()
public override static func primaryKey() -> String? {
return "compoundKey"
}
private func compoundKeyValue() -> String {
return "\(id)-\(type)"
}
}
Run Code Online (Sandbox Code Playgroud)
但我发现Realm不支持延迟属性,在我的情况下我收到此错误:
exception NSException*name:"RLMException" - reason:"在Realm Swift对象类上不允许使用惰性托管属性'compoundKey'.要么将属性添加到忽略的属性列表中,要么将其设置为非惰性." 0x00007f8a05108060
是否仍然可以使用没有懒惰属性的复合键?
我正在尝试创建一个表,作为主键使用来自其他表的值.我的讲座说这是一个复合键(主要+外国)但我似乎无法找到如何启动一个.可以找人试着解释这个概念以及如何尝试实现它?
假设一个表foo具有复合主键(a,b),如何使用SQLAlchemy(PostgreSQL方言)生成以下sql查询?
SELECT * FROM foo WHERE (a,b) IN ((1,2), (2,3));
Run Code Online (Sandbox Code Playgroud) compound-key ×5
dataframe ×1
merge ×1
mysql ×1
postgresql ×1
r ×1
realm ×1
sql ×1
sqlalchemy ×1
swift ×1