当我输入给定的向量[which.max()]时,为什么.max()中的索引与index的值不匹配

  • 本文关键字:max 索引 不匹配 index 向量 which r
  • 更新时间 :
  • 英文 :


你好,我几周前刚开始学习R。正在练习一项练习,其中指出通勤时间被跟踪一周(仅在工作日(,以下是以分钟为单位的记录时间:

commute <- c(17, 16, 20, 24, 18)

我将矢量命名为相应的工作日:

names(commute) <- c("M", "Tu", "W", "Th", "F")

演习指出:使用diff((查找与前一天相比变化最大的一天。

所以我通过写发现变化最大的一天是星期五

which.max(abs(diff(commute)))

但是,为什么当我键入以下内容时,它会给我星期四?

commute[which.max(abs(diff(commute)))]

我将如何调整此代码以打印出";F";而不是给我指数值?

diff返回的长度比原始向量小1。

length(commute)
#[1] 5
length(diff(commute))
#[1] 4

因此,将+ 1添加到which.max索引以获得正确的值。

commute[which.max(abs(diff(commute))) + 1]
# F 
#18 

或者,如果您只想要名称("F"(,则可以从which.max输出中提取names

names(which.max(abs(diff(commute))))
#[1] "F"

最新更新