votedIndicated("D") [1] 0 但是,当我-6ren">
gpt4 book ai didi

r - lapply 返回一系列向量而不是单个向量

转载 作者:行者123 更新时间:2023-12-05 00:21:19 26 4
gpt4 key购买 nike

我编写了一个函数,可以将字符输入转换为数字输出。

votedIndicated <- function(votedCode) {
switch(votedCode,
"V" = 1,
"A" = 1,
"M" = 1,
"O" = 1,
"T" = 1,
"P" = 1,
"L" = 1,
"D" = 0)
}

当我运行它时,我得到了预期的返回:
> votedIndicated("V")
[1] 1
> votedIndicated("D")
[1] 0

但是,当我尝试将此函数应用于向量时,我得到的不是另一个向量,而是一系列单值向量(我想我说的是对的)
> foo <- c("V","V","D")
> bar <- lapply(foo, votedIndicated)
> bar
[[1]]
[1] 1

[[2]]
[1] 1

[[3]]
[1] 0

我怎样才能做这样的酒吧 bar <- c(1,1,0) ?

最佳答案

您所指的“单值向量系列”称为 列表在 R 中。列表也是向量,但您希望返回 原子 向量。为此,并且由于您知道返回值始终是单个数值,因此您可以使用 vapply() .

vapply(foo, votedIndicated, 1)
# V V D
# 1 1 0

或者如果你不想要名字,
vapply(foo, votedIndicated, 1, USE.NAMES = FALSE)
# [1] 1 1 0

更多关于 vapply() ,见 help(vapply) .

关于r - lapply 返回一系列向量而不是单个向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31779228/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com