gpt4 book ai didi

r - dplyr 将字符强制转换为因子

转载 作者:行者123 更新时间:2023-12-02 09:07:06 24 4
gpt4 key购买 nike

我确信这有一个很好的理由,但我目前还没有找到,但是......为什么 dplyr 将字符强制转换为因子,即使你明确地强制转换为字符?

> letters
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"
> typeof(letters)
[1] "character"
> data.frame(
+ colA = as.character(letters),
+ colB = as.character(LETTERS)
+ ) %>%
+ glimpse
Observations: 26
Variables: 2
$ colA <fct> a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z
$ colB <fct> A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z

最佳答案

不是 dplyr 将其强制转换为 factor,而是 data.frame (base R 构造函数),其中默认选项是 stringsAsFactors = TRUE。指定 stringsAsFactors = FALSE 将纠正问题

data.frame(
colA = letters,
colB = LETTERS, stringsAsFactors = FALSE
)

注意:不需要将 as.character 包裹起来


因为我们正在使用 tidyverse,所以一个选项是 tibble,它的默认设置是 stringsAsFactors = FALSE

tibble(colA = letters, colB = LETTERS)

关于r - dplyr 将字符强制转换为因子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56879937/

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