R语言 数据框架的因素问题

R语言 数据框架的因素问题

数据框架是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,我们也可以看到警告信息中使用了因子一词,如何摆脱因子问题是现在的问题。

解决因子问题

R中的新条目在输入时应该与已经定义的因子水平一致,如果不一致,这些错误信息将被打印出来。如果你不希望这个问题发生,你要做的是在定义数据框架本身时,你需要传递另一个参数,即 “字符串作为因子 “为假。默认情况下,这个参数为真,这就是为什么当你想把字符串字符变成新的字符串字符作为一个元素时,你会得到这个警告信息的原因。现在试着做你想改变的相同操作。

例子

# 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了,我们达到了我们想要的效果。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程