📜  R编程中DataFrame中的因素问题

📅  最后修改于: 2022-05-13 01:55:21.785000             🧑  作者: Mango

R编程中DataFrame中的因素问题

DataFrames 是 R 的通用数据对象,用于存储表格数据。数据框被认为是 R 编程中最流行的数据对象,因为以表格形式分析数据更加舒适。数据帧也可以作为矩阵来教授,其中矩阵的每一列都可以是不同的数据类型。

R中数据框中的因素问题

R 具有将数据类型分配给您输入的数据的内置特性。当您输入数字变量时,它知道所有可用的数字变量,但是当您输入字符变量时,它会将您提供的任何字符变量作为类别或因子级别。它假设这些是目前唯一可用的因素。因子变量是字符列被分成类别或因子级别的变量。所以让我们通过一个例子来理解这一点。在下面的 R 代码中,给出了一个数据框,我们想要操作数据框并看看这里实际发生了什么问题。

例子:

# R program to illustrate
# the factor issue in a data frame
  
# Creating a dataframe 
df = data.frame( 
  "Name" = c("Amiya", "Raj", "Asish"), 
  "Language" = c("R", "Python", "Java"), 
  "Age" = c(22, 25, 45) 
) 
print(df) 
  
# Manipulating the data frame
df[1, 3] = 37
df[3, 2] = "C"
  
print(df)

输出:

Name Language Age
1 Amiya        R  22
2   Raj   Python  25
3 Asish     Java  45

   Name Language Age
1 Amiya        R  37
2   Raj   Python  25
3 Asish     NA    45
Warning message:
In `[<-.factor`(`*tmp*`, iseq, value = "C") :
  invalid factor level, NA generated

起初,当您想将第一行第三列中的元素更改为其他元素时,尽管它是一个数字变量,但操作成功执行。但是当您想将第三行第二列中的元素更改为其他元素时;发生的情况是,它将显示一条警告消息,指出此“C”分类变量不可用,并将其替换为 NA。您可以注意到我们希望“C”出现的地方我们有一个 NA,我们还可以在警告消息中看到单词 factor 的使用,如何摆脱 factor 问题是现在的问题。

解决因素问题

当您输入时,R 中的新条目应与已定义的因子水平一致,否则,将打印出这些错误消息。如果你不希望这个问题发生,你必须做的是在定义数据框本身时,你需要传递另一个参数,它说“字符串作为因子”是错误的。默认情况下,此参数为 true,这就是当您要将字符串字符更改为新字符串字符作为元素时收到此警告消息的原因。现在尝试执行您想要更改的相同操作。

例子:

# R program to illustrate
# resolving the factor issue in a data frame
  
# Creating a dataframe 
df = data.frame( 
  "Name" = c("Amiya", "Raj", "Asish"), 
  "Language" = c("R", "Python", "Java"), 
  "Age" = c(22, 25, 45),
  # Passing an additional argument 
  # to resolve factor issue
  stringsAsFactors = F
) 
print(df) 
  
# Manipulating the data frame
df[1, 3] = 37
df[3, 2] = "C"
  
print(df)

输出:

Name Language Age
1 Amiya        R  22
2   Raj   Python  25
3 Asish     Java  45

   Name Language Age
1 Amiya        R  37
2   Raj   Python  25
3 Asish        C  45

从上面的代码中,您可以看到不再有 NA,我们实现了我们想要的。