У меня есть кадр данных, и я хотел бы «выровнять» каждый столбец, чтобы максимальное значение для каждого столбца находилось в одной строке.R смещение вектора
Я пытался сделать это, используя базовую функциональность, но получаю неправильные результаты, т.е. просто переписывание и не перенос. Я только что нашел функцию Lag в Hmisc, однако, я уверен, что есть способ сделать это в базе, и я просто думаю об этом неправильно. Я бы предпочел это, поскольку, когда я пытаюсь запустить это позже на другом компьютере с другой verison из R всегда есть некоторый пакет, которые не поддерживаются
Спасибо за любую помощь,
maxIndices<-apply(df,2,function(x){
maxInt<-max(x,na.rm=T)
maxInt_indx<-which(x==maxInt)
})
maxMaxIndex<-max(maxIndices)
minMaxIndex<-min(maxIndices)
##
apply(df,2,function(x){
maxInt<-max(x,na.rm=T)
maxInt_indx<-which(x==maxInt)
shift<-maxMaxIndex-maxInt_indx
shifted_vec<-c(rep(NA,times=shift), x[1:length(x)+shift]) ## this is producing the wrong results
# shifted_vec<-Lag(x,shift) # is there a way to do this using just base functionality
})
Должна быть одна строка, но чтобы убедиться, что ваш ответ верен, можете ли вы разместить некоторые данные и выходные данные? – John
@beginneR Ваш код не работает таким образом; попробуй. – nograpes
@ nograpes - вы правы. Еще раз я смутил 'dplyr :: lag' с' stats :: lag' –