首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从head()函数中提取最大值和最小值?

从head()函数中提取最大值和最小值?
EN

Stack Overflow用户
提问于 2019-09-24 00:38:13
回答 2查看 65关注 0票数 1

我正在分析向量的片段,为此我需要提取它们的最大值。

通常的做法是使用max(vector, na.rm = TRUE)。但是,在某些段中,向量的实际最大值不会出现,因此它会给出该向量段的最大值。

为此,我想从head()函数中提取最大值,如下所示:

代码语言:javascript
运行
复制
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()的输出转换为dataframe,但这只给出了向量的前5个值。有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-24 05:17:14

如果所有的值都有标签,那么最简单的方法就是从值标签中提取最大值:

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
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))
票数 1
EN

Stack Overflow用户

发布于 2019-09-24 01:15:51

代码语言:javascript
运行
复制
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

这个解决方案是从这里的答案派生出来的:Extract values and labels of labelled data

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58066738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档