【发布时间】:2015-06-25 17:17:11
【问题描述】:
我有以下data.frame data:
data <- data.frame(matrix(0, ncol=4, nrow=4))
colnames <- seq(from = 6, to = 3, by = -1)
names(data)<- sprintf("%.1f", colnames)
rownames <- seq(from=5, to=2, by=-1)
rownames(data) <- sprintf("%.0f", rownames)
我有两个向量,a 和 b:
a <- seq(11, 5, -1)
b <- seq(0, 30, 5)
a 表示列和行标题可以采用的所有可能的总和。例如,最西北的单元格是6+5=11。
b 表示我要填充到data.frame 中的值。顺序对应a的顺序。例如,data[1,1](行名和列名之和为11)应采用值0。 data[1,2] 和 data[2,1] 都应该具有 5 的值。
我该怎么做呢?
我最初的想法是遍历所有单元格并检查它们的行+列名称总和是什么,然后检查这个总和是否在 a 中,如果是,则获取位置,然后转到 b 并根据位置获取值然后填写。这是在正确的轨道上吗?
【问题讨论】:
-
我不知道为什么你想要一个 data.frame 而不是在这个例子中保留为矩阵。这样做似乎没有任何优势。对于您的问题,我建议您查看“外部”功能。
标签: r if-statement vector