R语言 只计算数字列的相关矩阵

R语言 只计算数字列的相关矩阵

相关矩阵是一个数据框架的数字属性之间关系的表格表示。表中的值是属性之间的相关系数。

使用的数据集:畅销书

为了创建一个相关矩阵,需要以数据框架为参数调用cor()函数。

语法: cor(dataframe)

例子

df<-read.csv("bestsellers.csv")
  
cor(df)
R

输出

Error in cor(df) : 'x' must be numeric
R

当数据帧由数值以外的值组成时,这个函数就会失效。在这种情况下,创建一个相关矩阵可以通过下面的任何一种方法来完成。

方法1:使用sapply()

这里cor()在数据框架中被调用,但这次只给它数字列。为了过滤掉数字列,使用sapply()对数据框进行了检查数字值的操作。

R语言中的 sapply() 函数将列表、向量或数据框作为输入,并给出向量或矩阵的输出。它对列表对象的操作很有用,并返回一个与原始集合相同长度的列表对象。

语法: sapply(X, FUN)

参数

  • X: 一个向量或一个对象
  • FUN: 应用于X的每个元素的函数

例子

df<-read.csv("bestsellers.csv")
  
cor(df[sapply(df,is.numeric)])
R

输出

在R中只计算数字列的相关矩阵

方法2:使用 lapply( )

同样,也可以用lapply来过滤掉数值。 Lapply() 函数R语言用来在元素列表上应用一个函数。

语法: lapply(list, func)

参数

  • list: 元素的列表
  • func: 要应用的操作

在选择了所需的数据后,使用unlist()将列表转换为一个向量,然后将此数据帧传递给cor(),以产生一个相关矩阵。

R语言中的 unlist() 函数用于将一个列表转换为一个矢量。它通过保留所有成分来简化生成一个向量。

语法: unlist(list)

参数:

list: 它是一个列表或向量

use.name: 布尔值,用于保存或不保存位置名称。

例子

df<-read.csv("bestsellers.csv")
  
cor(df[, unlist(lapply(df, is.numeric))])
R

输出

在R中只计算数字列的相关矩阵

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册