gpt4 book ai didi

r - 将逻辑向量转换为字符时如何避免 R 将 F 转换为 False

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

我从参与者那里导入了一些数据,其中一些变量是 F/M(女性/男性),当我导入它时,R 将仅包含 F 的向量转换为逻辑向量。当我将它们转换回字符时,F 已转换为 FALSE。如何避免这种 F 到 FALSE 的转换?

我知道我可以将所有 FALSE 转换回 F,但我想找到一种替代解决方案以避免我的代码看起来困惑。

这是我目前的代码,我怀疑问题出在 lapply 中。我无法真正提供完整的数据集,因为该命令已合并到读取 csv 文件中。我给出了一个示例,展示了 CSV 文件中的数据与 R 转换后的数据。实际数据集还有更多列。

library(tidyverse)

csv_data <- data.frame(first = c(1, 1, 1, 1),
first_sex = c("F", "F", "F", "F"),
second = c(2, 2, 2, 2),
second_sex = c("M", "F", "F", "F"))

R_output_data <- data.frame(first = c(1, 1, 1, 1),
first_sex = c(F, F, F, F),
second = c(2, 2, 2, 2),
second_sex = c("M", "F", "F", "F"))

files <- list.files(path = "path to data",
pattern = "*.csv", full.names = T)

test_data <- lapply(files, read_csv) %>%
lapply(.,mutate_if, is.logical, as.character) %>%
bind_rows()

最佳答案

如果您知道有问题的列是 first_sexsecond_sex ,您可以使用col_*来自 readr 的处理程序。例如:

require(readr)    
notlogical<-cols(first_sex=col_character(),second_sex=col_character())
#then in the lapply:
test_data <- lapply(files, read_csv, col_types=notlogical) #the rest is the same

关于r - 将逻辑向量转换为字符时如何避免 R 将 F 转换为 False,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56703677/

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