【发布时间】:2011-09-08 09:05:53
【问题描述】:
我有一个名为 commodities_3 的数据框。它包含包含不同商品的 28 列和代表月末数据的 403 行。我需要的是分别找到每一行的位置:
- 最大值,
- 最小值,
- 所有其他积极因素
- 所有其他负面因素
然后应该使用这些索引来定位另一个具有相同列和行特征的数据帧中的相应数据,称为commodities_3_returns。然后应将这些数据复制到 4 个新数据帧中(每个排序一个数据帧)。
我知道如何使用 which 和 which.min 和 which.max 来查找每一行的值的位置。但我不知道如何将其放入循环中以便对所有 403 行执行此操作。以及随后如何使用这些数据在另一个数据框commodities_3_returns中定位对应的数据。
不幸的是,我必须使用数据框,因为其中有日期作为行名,我必须保留这些日期,因为以后需要它们进行索引,以及 NA。它看起来像这样:
commodities_3 <- as.data.frame(matrix(rnorm(15), nrow=5, ncol=3))
mydates <- as.Date(c("2011-01-01", "2011-01-02", "2011-01-03", "2011-01-04", "2011-01-05"))
rownames(commodities_3) <- mydates
commodities_3[3,2] <- NA
commodities_3_returns <- as.data.frame(matrix(rnorm(15), nrow=5, ncol=3))
mydates <- as.Date(c("2011-01-01", "2011-01-02", "2011-01-03", "2011-01-04", "2011-01-05"))
rownames(commodities_3_returns) <- mydates
commodities_3_returns[3,3] <- NA
正如我所说,我总共有 403 行和 27 列。在每一行中,我都必须保留一些 NA。 max.col 似乎无法处理 NA。
我对上述示例的期望输出是这样的:
max_values <- as.data.frame(matrix(data=c(1:5,3,2,1,3,1), nrow=5, ncol=2, byrow=F))
【问题讨论】:
-
你可以从给我们一个可重现的例子开始。 stackoverflow.com/questions/5963269/… 如果您向我们展示输出应该是什么样子,这也会对我们有所帮助。
-
我已将您未注册的帐户合并到您的注册帐户中。您现在可以完全控制这个问题。