gpt4 book ai didi

r - 向量子集与列表子集

转载 作者:行者123 更新时间:2023-12-02 13:40:28 26 4
gpt4 key购买 nike

给定:

actors_vector <- c("Jack Nicholson", "Shelley Duvall", "Danny Lloyd", 
"Scatman Crothers", "Barry Nelson")

reviews_factor <- factor(c("Good", "OK", "Good", "Perfect",
"Bad", "Perfect", "Good"),
levels = c("Bad", "OK", "Good", "Perfect"),
ordered = TRUE)

shining_list <- list(title = "The Shining",
actors = actors_vector,
reviews = reviews_factor)

shining_list
$title
[1] "The Shining"

$actors
[1] "Jack Nicholson" "Shelley Duvall" "Danny Lloyd" "Scatman Crothers"
[5] "Barry Nelson"

$reviews
[1] Good OK Good Perfect Bad Perfect Good
Levels: Bad < OK < Good < Perfect

$boxoffice
US Non-US
First release 39 47
Director's cut 18 14

为什么shining_list[[3]][3]shining_list$reviews[3]返回:

[1] Good
Levels: Bad < OK < Good < Perfect

shining_list[[c(3,3)]] 返回:

[1] 3

这是关于向量子集与列表子集的部分,地址:DataCamp .

最佳答案

这很可能是因为因子不是向量:

reviews <- factor(c("Good", "OK", "Good", "Perfect", "Bad", "Perfect", "Good"), 
levels=c("Bad", "OK", "Good", "Perfect"), ordered=TRUE)
is.vector(reviews)
## [1] FALSE

在内部,因子级别存储为整数向量,并在顶部定义了一些结构:

unclass(reviews)
## [1] 3 2 3 4 1 4 3
## attr(,"levels")
## [1] "Bad" "OK" "Good" "Perfect"

在某些情况下,此结构会崩溃,您只剩下整数表示形式。我认为你的例子就是其中之一,其他几个例子是:

c(reviews[3], reviews[4])
## [1] 3 4
ifelse(TRUE, reviews[1], reviews[2])
## [1] 3

关于r - 向量子集与列表子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32713487/

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