假设我有一对因子,X 和 Y。此外,X 有三个水平,Y 有 4 个水平。一个例子可能是:
X = c("red","blue","yellow")
Y = c(1,2,3,4)
这显然是 12 种因素组合,假设对于每种组合,我想创建和存储一些数据,也许是作为数据框,或者作为像样条曲线这样的插值函数。关键是数据可能是任意的。
现在,我希望能够通过使用因素的组合来查找数据。我不知道这是否是正确的方法(因此我的问题),但我认为我可以解决这个问题:
dict <- list()
combinations <- expand.grid(X = c("red","blue","yellow"),Y = c(1,2,3,4))
for (i in 1:dim(combinations)[1]) {
dict[paste(combinations$X[i],combinations$Y[i],sep=":")] <- paste(combinations$X[i],combinations$Y[i],sep=":")
}
结果:
> dict
$`red:1`
[1] "red:1"
$`blue:1`
[1] "blue:1"
$`yellow:1`
[1] "yellow:1"
$`red:2`
[1] "red:2"
$`blue:2`
[1] "blue:2"
$`yellow:2`
[1] "yellow:2"
$`red:3`
[1] "red:3"
$`blue:3`
[1] "blue:3"
$`yellow:3`
[1] "yellow:3"
$`red:4`
[1] "red:4"
$`blue:4`
[1] "blue:4"
$`yellow:4`
[1] "yellow:4"
现在,如果我想更改特定的键、值组合,我可以相对轻松地做到这一点:
dict["red:4"] <- "insert some cool function here"
> dict["red:4"]
$`red:4`
[1] "insert some cool function here"
因此,显然,如果您只是将文本作为值,这将非常愚蠢。但我认为如果“值”实际上是对象或数据框,它就会变得有用。大家对此怎么看?是否有另一种更简单的方法来实现我不知道的 R 中已经存在的相同类型的功能?