gpt4 book ai didi

r - 如何区分R中的元素和长度为1的向量?

转载 作者:行者123 更新时间:2023-12-04 10:17:11 25 4
gpt4 key购买 nike

有没有办法区分1c(1) ?显然在 R

c(1) == 1 # TRUE
as.matrix(c(1)) == 1 # TRUE
as.array(c(1)) == 1 # TRUE

这是一个问题,例如,如果我将向量转换为 JSON:
library(rjson)
toJSON(c(1,2)) # "[1,2]"
toJSON(c(1)) # "1" instead of "[1]"

有任何想法吗?

最佳答案

如果您传递一个列表,它会按预期工作:

> toJSON(list(1))
[1] "[1]"

您可以使用 as.list 进行转换:
> toJSON(as.list(c(1)))
[1] "[1]"
> toJSON(as.list(c(1, 2)))
[1] "[1,2]"

正如其他答案中所指出的,R 中的原子值和长度为 1 的向量之间没有区别——与列表不同,列表总是具有长度并且可以包含任意对象,不一定是相同类型的对象。

关于r - 如何区分R中的元素和长度为1的向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17426510/

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