数据帧由索引的数据帧子集

德佩利塞克

我想选择以下数据框的特定值:

src:
   c1 c2 c3 c4 c5 c6
rA  9 12 44 88 11  1
rB 12  7 14 24 48 67
rC  0 15 97 17 13 18
rD 74 51 10 11 14  8

通过存储在数据框中的索引(具有与列相同的列名和行名作为值):

idx:
   c1 c4 c6
 1 rA rD rA
 2 rD rA rB
 3 rB rC rC

所以结果应该是这样的:

res:
    1  2  3
 1  9 11  1
 2 74 88 67
 3 12 17 18

请问最优雅的方法是什么?

红模式

给定原始帧的定义如下:

src <- data.frame(matrix(c(9, 12, 44, 88, 11, 1,
                           12, 7, 14, 24, 48, 67,
                           0, 15, 97, 17, 13, 18,
                           74, 51, 10, 11, 14, 8), nrow = 4, byrow = TRUE))
rownames(src) <- paste0("r", LETTERS[1:4])
colnames(src) <- paste0("c", 1:6)

idx <- data.frame(matrix(c("rA", "rD", "rB",
                           "rD", "rA", "rC",
                            "rA", "rB", "rC"), nrow = 3),
                  stringsAsFactors = FALSE)
colnames(idx) <- c("c1", "c4", "c6")

可以用以下方法解决sapply

sapply(colnames(idx), function(col) {
  src[idx[, col], col]
})

它产生具有预期结果的矩阵:

     c1 c4 c6
[1,]  9 11  1
[2,] 74 88 67
[3,] 12 17 18

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

数据帧子集

来自分类Dev

带有分层索引的选择-获取数据帧的子集

来自分类Dev

创建数据帧子集的散点图

来自分类Dev

计算数据帧的子集

来自分类Dev

Pandas 数据帧索引在索引数据帧的子集时导致问题。如何删除索引或防止错误发生?

来自分类Dev

根据状态在单独的数据帧中的数据帧子集

来自分类Dev

从子集数据帧创建新数据帧

来自分类Dev

获取计数的数据帧的索引

来自分类Dev

连接多索引数据帧

来自分类Dev

数据帧与元组索引的串联

来自分类Dev

计算数据帧中子集的差异

来自分类Dev

R中数据帧的按列子集

来自分类Dev

基于每组行数的子集数据帧

来自分类Dev

基于数据帧内容的子集矩阵

来自分类Dev

子集数据帧并计算频率

来自分类Dev

子集数据帧方法的差异

来自分类Dev

如何基于colMeans子集数据帧

来自分类Dev

按日期获取子集数据帧

来自分类Dev

R:来自数据帧的平均子集序列

来自分类Dev

R数据帧子集整理优化

来自分类Dev

基于子集的R数据帧中的difftime

来自分类Dev

R中的条件子集数据帧

来自分类Dev

基于重复模式的子集数据帧

来自分类Dev

根据列的Count值的数据帧子集

来自分类Dev

多种条件下的数据帧子集

来自分类Dev

基于条件熊猫的子集数据帧

来自分类Dev

基于条件的子集ar数据帧

来自分类Dev

在R中子集空间点数据帧

来自分类Dev

用R绘制数据帧的子集