在R编程中从向量创建数据框

2021年4月21日18:48:06 发表评论 1,095 次浏览

向量可以定义为具有相同数据类型的数据序列。在R中,可以使用c()函数创建向量。

R向量用于保存相同数据类型的多个数据值,类似于C语言中的数组。

数据框是用于保存值的二维表结构。在数据帧中, 每一列包含一个变量的值, 每一行也包含每一列的值。数据框可以存储数字数据或字符数据或因子类型数据。

数据框中的每一列应包含相等数量的数据元素。可以从R中的向量转换数据帧。

要使用向量在R中创建数据帧, 我们首先必须具有一系列包含数据的向量。

data.frame()函数用于从R中的向量创建数据帧。

语法如下:

data.frame(vectors)

现在, 让我们根据R中的向量制作一个数据框

这里我们有用于学生数据的向量, 我们必须将它们转换为数据帧。

准备向量:

  • User.ID向量:学生的ID向量User.ID包含直接输入学生的条目, 后跟1到8之间的数字。
  • 名称向量:学生的名字。
  • 性别向量:学生的性别, 包含条目"男"和"女"。
  • 标记向量:它包含学生获得的分数。
  • 编号:包含每个学生的人数。

使用向量构建数据框:

# R program to illustrate
# data frame from vector
   
User.ID <- sprintf ( "User % d" , 1:8) 
Name <- c ( "Jhon" , "Lee" , "Suzan" , "Abhinav" , "Brain" , "Emma" , "David" , "Alice" )
   
gender <- c ( "Male" , "Male" , "Female" , "Male" , "Male" , "Female" , "Male" , "Female" )
   
Marks <- c (56, 76, 86, 96, 73, 87, 47, 98)
    
Number <- c ( '111-222' , '222-333' , '333-444' , '444-666' , '333-888' , '000-888-777' , '999-000' , '222-456' )
    
class.df<- data.frame (User.ID, Name, gender, Marks, Number)
class.df

输出如下:

结果将是一个数据帧。

在R编程中从向量创建数据框1

在上面的示例中, 我们有5个向量, Name是长度为8的字符向量, User.ID是数字向量以及所有上述向量, 并使用它们创建了一个列长为8的数据帧, 行长5。

创建数据框后, 我们可以应用各种数据框操作。

获取数据框的结构:

str()函数用于获取数据帧的结构。

例子:

# R program to illustrate
# data frame from vector
   
User.ID <- sprintf ( "User % d" , 1:8) 
Name <- c ( "Jhon" , "Lee" , "Suzan" , "Abhinav" , "Brain" , "Emma" , "David" , "Alice" )
   
gender <- c ( "Male" , "Male" , "Female" , "Male" , "Male" , "Female" , "Male" , "Female" )
   
Marks <- c (56, 76, 86, 96, 73, 87, 47, 98)
    
Number <- c ( '111-222' , '222-333' , '333-444' , '444-666' , '333-888' , '000-888-777' , '999-000' , '222-456' )
    
class.df<- data.frame (User.ID, Name, gender, Marks, Number)
str (class.df)

输出如下:

在R编程中从向量创建数据框2

在上面的代码中使用str()函数我们已经看到了数据帧的结构。

从数据框中提取数据

在R中, 我们可以使用列名从数据框中访问特定列。

例子:

# R program to illustrate
# data frame from vector
   
User.ID <- sprintf ( "User % d" , 1:8) 
Name <- c ( "Jhon" , "Lee" , "Suzan" , "Abhinav" , "Brain" , "Emma" , "David" , "Alice" )
   
gender <- c ( "Male" , "Male" , "Female" , "Male" , "Male" , "Female" , "Male" , "Female" )
   
Marks <- c (56, 76, 86, 96, 73, 87, 47, 98)
    
Number <- c ( '111-222' , '222-333' , '333-444' , '444-666' , '333-888' , '000-888-777' , '999-000' , '222-456' )
    
class.df<- data.frame (User.ID, Name, gender, Marks, Number)
extract<- data.frame (class.df$Name, class.df$gender)
print (extract)

输出如下:

在R编程中从向量创建数据框3

将行和列添加到数据框

添加栏:

要添加列, 我们只需要在数据帧中添加一个新的列向量即可。

让我们以上面的示例来说明如何添加列。

例子:

# R program to illustrate
# data frame from vector
   
User.ID <- sprintf ( "User % d" , 1:8) 
Name <- c ( "Jhon" , "Lee" , "Suzan" , "Abhinav" , "Brain" , "Emma" , "David" , "Alice" )
   
gender <- c ( "Male" , "Male" , "Female" , "Male" , "Male" , "Female" , "Male" , "Female" )
   
Marks <- c (56, 76, 86, 96, 73, 87, 47, 98)
    
Number <- c ( '111-222' , '222-333' , '333-444' , '444-666' , '333-888' , '000-888-777' , '999-000' , '222-456' )
    
class.df<- data.frame (User.ID, Name, gender, Marks, Number)
  
class.df$New.column<- sprintf ( "new.data % d" , 1:8)
modified.dataframe <- class.df
print (modified.dataframe)

输出如下:

在R编程中从向量创建数据框4

在上面的示例中, 使用上面的数据框, 我们在数据框中添加了一个新列, 其中包含数据元素new.data。

添加行

要在数据框中添加一行, 我们必须获取另一个数据框, 并且必须使用rbind()函数。

让我们以上面的示例来说明如何向数据帧添加新行。

例子:

# R program to illustrate
# data frame from vector
   
User.ID <- sprintf ( "User % d" , 1:8) 
Name <- c ( "Jhon" , "Lee" , "Suzan" , "Abhinav" , "Brain" , "Emma" , "David" , "Alice" )
   
gender <- c ( "Male" , "Male" , "Female" , "Male" , "Male" , "Female" , "Male" , "Female" )
   
Marks <- c (56, 76, 86, 96, 73, 87, 47, 98)
    
Number <- c ( '111-222' , '222-333' , '333-444' , '444-666' , '333-888' , '000-888-777' , '999-000' , '222-456' )
    
class.df<- data.frame (User.ID, Name, gender, Marks, Number)
  
# create another data frame
User.ID <- sprintf ( "User % d" , 9:12)
  
Name <- sprintf ( "new.data % d" , 9:12)
  
gender <- c ( "Male" , "Male" , "Female" )
  
Marks <- c ( 87, 47, 98)
   
Number <- sprintf ( "new.number % d" , 9:12)
new.data<- data.frame (User.ID, Name, gender, Marks, Number)
  
final.data <- rbind (class.df, new.data)
  
print (final.data)

输出如下:

在R编程中从向量创建数据框5

在上面的代码中, 我们使用另外3行创建了一个新的数据框架" new.data", 然后将两个数据框架绑定在一起, 从而添加了" new.data"行。


木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: