你好,我几周前刚开始学习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"