2014-12-29 2 views
0

У меня есть кадр данных с более чем 20 столбцами и я пытаюсь создать новый объект, который возвращает максимальное значение одного вектора, а также возвращает значение в той же строке другого вектор/переменная. Я читал много страниц/сайтов по извлечению элементов, но ни один из них, который я нашел, не представляется актуальным в моем контексте.Извлечение и печать нескольких элементов из разных векторов в R

Вот код, я использую:

object <- DF[which.max(DF[,ColNumber]),"VARNAME"] 

Что эта строка кода делает это найти строку, которая соответствует максимальному значению для ColNumber, а затем печатать только значение VARNAME для этой строки. Как я могу получить R для возврата/печати BOTH VARNAME значение и максимальное значение?

+0

Можете ли вы показать небольшой набор данных образца с нужным выходом? – A5C1D2H2I1M1N2O1R2T1

ответ

0

Альтернатива с использованием dplyr. Сначала выберите интересующие столбцы из набора данных, mtcars. Затем отфильтруйте максимальное значение disp.

data(mtcars) 
library(dplyr) 
select(mtcars, mpg, disp) %>% filter(disp==max(disp)) 

# mpg disp 
# 1 10.4 472 
+0

Это тоже отлично поработало! Мне также очень нравится, что с помощью select сохраняет заголовки строк и удаляет кавычки из символьного вектора. Благодаря! – MJA

0

Так как вам нужно больше, чем одно значение в качестве вывода, вы можете создать вектор, что-то вроде:

object <- c(DF[which.max(DF[,ColNumber]),"VARNAME"],max(DF[,ColNumber])) 

Например, принимая mtcars набор данных,

data(mtcars) 
object<-c(mtcars[which.max(mtcars[,3]),"mpg"],max(mtcars[,3])) 
object 
#[1] 10.4 472.0 

Здесь max(mtcars[,3]) дает максимум значение в третьем столбце, в то время как mtcars[which.max(mtcars[,3]),"mpg"] дает значение mpg для строки, где 3-й столбец имеет максимальное значение.

+0

Благодарим вас за тщательную и оперативную обратную связь! Это здорово! – MJA

Смежные вопросы