首页 > 解决方案 > r中一个因子的读数水平

问题描述

我在 R 中读取变量时遇到问题。我有这样的数据集:

Cloumn 1   Cloumn2
Pos           S
Pos           M
Pos           H
Pos           S
Neg           M
Neg           H 
Neg           S
Neg           M

所以第一列是2个级别的因子,第二列是3个级别的因子。当我在 R 中读取文件时,它会将变量读取为字符,当我将第二个变量指定为一个因子时,它给了我 5 个级别的因子,但我只有三个级别,你能帮我解决这个问题吗?

标签: r

解决方案


你是如何产生因子的?如果将它们作为字符读入,则需要使用as_factor()or将它们变异为因子as.factor()。这为第一列提供了两个级别,为第二列提供了三个级别:

library(tidyverse)

data <- tribble(~Column1,   ~Column2,
  "Pos", "S",
  "Pos", "M",
  "Pos", "H",
  "Pos", "S",
  "Neg", "M",
  "Neg", "H",
  "Neg", "S",
  "Neg", "M")
    
data <- data %>% 
  mutate(across(.cols = everything(), forcats::as_factor))

data$Column1
  [1] Pos Pos Pos Pos Neg Neg Neg Neg
  Levels: Pos Neg

data$Column2
  [1] S M H S M H S M
  Levels: S M H

推荐阅读