Извлечь максимум и минимум из функции head ()? - PullRequest
1 голос
/ 23 сентября 2019

Я анализирую сегменты векторов, и для этого мне нужно извлечь их максимум.

Обычный способ сделать это будет с max(vector, na.rm = TRUE).Однако в некоторых сегментах фактический максимум вектора не появляется, поэтому он дает максимум этого сегмента вектора.

Для этого я хочу извлечь максимум из функции head (),как это выглядит здесь:

library(expss)

nps = c(-1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1)

var_lab(nps) = "Net promoter score"
val_lab(nps) = num_lab("-1 Detractors
                         0 Neutralists    
                         1 Promoters")

head(nps)

Output:
Detractors  -1  Detractors      
Neutralists  0  Neutralists     
Promoters    1  Promoters

В этом случае я бы хотел извлечь '1' из среднего столбца.Я попытался превратить вывод head () в фрейм данных, но он просто дает первые 5 значений вектора.Есть идеи?

Ответы [ 2 ]

1 голос
/ 24 сентября 2019

Если все ваши значения имеют метки, то самый простой способ - извлечь максимум из меток значений:

library(expss)
vec = structure(c(6, 5, 5, 4, 5, 5), labels = c(`Missing; Unknown` = -5, `Not asked in survey` = -4, `Not applicable` = -3, `No answer` = -2, `Don´t know` = -1, Left = 1, `2` = 2, `3` = 3, `4` = 4, `5` = 5, `6` = 6, `7` = 7, `8` = 8, `9` = 9, Right = 10), class = "labelled")

max(val_lab(vec))
# 10

Если в вашем векторе есть значения без меток, вы можете использовать unique:

nps = c(-1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1)
var_lab(nps) = "Net promoter score"
# no label for 1
val_lab(nps) = num_lab("-1 Detractors
                         0 Neutralists")
# nmax = 1 indicate that unique will return values from vector and values from labels 
max(unique(nps, nmax = 1))
0 голосов
/ 23 сентября 2019
nps = c(-1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1)

var_lab(nps) = "Net promoter score"
val_lab(nps) = num_lab("-1 Detractors
                         0 Neutralists
                         1 Promoters")

max(stack(attr(nps, 'labels'))$values)
[1] 1

Это решение было производным от ответа здесь: Извлечение значений и меток помеченных данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...