【问题标题】:keep the name of the input vector's element in the output of the function in R将输入向量元素的名称保留在 R 中函数的输出中
【发布时间】:2021-12-05 03:10:06
【问题描述】:

我有两个函数f1f2。在其输出中,f1 始终保留输入向量 x 的元素名称。

但在其输出中,f2 总是删除输入向量 x 的元素名称。

f2 有没有办法像 f1 一样在其输出中保留元素的名称?

x <- 1:10
x <- setNames(x, letters[1:10])

f1 <- function(x, n){
  
  sort(x)[n]
} 
# EXAMPLE OF USE:
f1(x, 2)

# OUTPUT:
# b       # Notice "b"
# 2

f2 <- function(x, n){
  
  len <- length(x)
  sort(x, partial = len-n+1)[len-n+1]
}

# EXAMPLE OF USE:
f2(x, 2)

# OUTPUT:
# [1] 9     # Notice no name is attached to 9.

【问题讨论】:

    标签: r dataframe function vector


    【解决方案1】:

    sort 函数中,如果partial 不是null,则丢弃名称。请参阅sort 函数文档。 在f2sort(x, partial = len-n+1)[len-n+1],只是有点乱,

    f2 <- function(x, n){
      
      len <- length(x)
      x[x == sort(x, partial = len-n+1)[len-n+1]]
    }
    f2(x, 2)
    
    i 
    9
    

    但这将保留值的名称。

    【讨论】:

      猜你喜欢
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多