服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - R语言 - R语言 data.frame()命令的使用说明

R语言 data.frame()命令的使用说明

2022-01-04 15:39红金龙-时光 R语言

这篇文章主要介绍了R语言 data.frame()命令的使用说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

同expand.grid() 一样,data.frame() 也是一个生产数据框的命令

不同的是,两者产生的结果,要求不一样

data.frame() 的命令,如

?
1
data.frame(x=c(1:4),m=c(10,20,30),n=c(5:16))
?
1
2
3
4
5
6
7
8
9
10
11
12
13
  x m n
1 1 10 5
2 2 20 6
3 3 30 7
4 4 10 8
5 1 20 9
6 2 30 10
7 3 10 11
8 4 20 12
9 1 30 13
10 2 10 14
11 3 20 15
12 4 30 16

其中,对于x,m,n所包含的个数是有限制的

具体表现在三者或者更多所包含的个数这些数值【x(4),m(3),n(12)】的最小公倍数为其中一个(最大的那个数)

结果的排列也是不一样的

首先,行数为最多那组含有的数的个数

所有的循环均为依次循环,不像expand.grid()中的后面的还需要先重复之后再循环

补充:R 语言处理excel为data.frame

使用 R包 xlsx 或者 openxlsx

安装

?
1
2
install.packages("xlsx", repos="https://cloud.r-project.org/")
install.packages("openxlsx", repos="https://cloud.r-project.org/")

使用

文件名+sheet的序号读取指定sheet的内容

?
1
2
3
4
5
data <- read.xlsx("Lipstick.xlsx", sheet = 1) # 读取excel
View(data)
## data 为 data.frame
# 读取 table 分隔的文本文件
data = read.table(file.txt, sep="\t", header=T);

访问 data.frame 的元素

查看列名 colnames(data)

查看行名 rownames(data)

提取指定行

data[2,] 提取第二行

提取指定列

?
1
data[c("列名1", "列名2", "列名3")]

data[2] 提取第二列

data[2:4] 提取第2-4列

如果只访问1列,返回的是 vector 类型,可以使用 [[ ]] 或者 $ 来访问 data[[2]] 或者 data$列名

默认情况下,字符串向量会被自动识别成 Factor

向 data.frame 中添加新列 新添加的列的行数要和表中的列的行数相同

?
1
2
data$新列名 <- 数据
data$新列名 <- as.integer(format(Sys.Date(), "%Y")) - as .integer(format(sutdent$birthday, "%Y"))

查询/子集

查询一个data.frame,返回一个满足条件的子集,这相当于数据库中的表查询,是非常常见的操作。

使用行和列的index来获取子集是最简单的方法,详情见前面。

当然也可以使用布尔向量,配合which函数来实现对行的过滤。

比如我们要查询所有Gender为F的数据,那么我们首先通过student$Gender=="F" 得到一个布尔向量:FALSE FALSE ... TRUE,然后使用 which 函数可以将布尔向量中的TRUE的index返回,完整语句如下

?
1
student[which(student$Gender=="F")]

如果我们想知道所有女生的年龄,

?
1
student[which(student$Gender=="F"), "Age"]

另外可以直接使用 subset() 函数,比如把查询年龄改为 <30 的女性,查询姓名和年龄,如下

?
1
subset(student, Gender=="F" & Age < 30, select=c("Name", "Age"))

使用SQL查询 Data Frame 使用 sqldf 包

?
1
2
library(sqldf)
result <- sqldf("select Name, Age from student where Gender='F' and Age > 30")

连接/合并

对于数据库来说,对多表进行 join 查询是一个很正常的事,在R中也可以对多个 Data.frame 进行连接,需要使用 merge() 函数

?
1
result <- merge(student,score,by.x="ID",by.y="SID")

使用 rbind() 函数 rbind 的两个 Data frame 必须有相同的列

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。

原文链接:https://blog.csdn.net/hongjinlongno1/article/details/52262052

延伸 · 阅读

精彩推荐
  • R语言R studio 批量注释的快捷方式

    R studio 批量注释的快捷方式

    这篇文章主要介绍了R studio 批量注释的快捷方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    JasonKQLin13342022-01-04
  • R语言R语言可视化存储矢量图实现方式

    R语言可视化存储矢量图实现方式

    这篇文章主要为大家介绍了R语言存储矢量图的实现方式过程,有需要的朋友可以借鉴参考下,希望能够有所你帮助,祝大家多多进步,早日升职加薪...

    Kanny广小隶9392022-01-20
  • R语言聊聊R语言中Legend 函数的参数用法

    聊聊R语言中Legend 函数的参数用法

    这篇文章主要介绍了聊聊R语言中Legend 函数的参数用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    Gavin姓陈6352021-12-28
  • R语言R语言创建矩阵的实现方法

    R语言创建矩阵的实现方法

    这篇文章主要介绍了R语言创建矩阵的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随...

    hjk_caesar9462021-12-27
  • R语言R语言绘制散点图实例分析

    R语言绘制散点图实例分析

    在本篇文章里小编给大家整理的是一篇关于R语言绘制散点图实例分析内容,有需要的朋友们可以学习下。...

    w3cschool6942022-01-06
  • R语言R语言-使用ifelse进行数据分组

    R语言-使用ifelse进行数据分组

    这篇文章主要介绍了R语言-使用ifelse进行数据分组,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    小力丸12042022-01-10
  • R语言R语言中c()函数与paste()函数的区别说明

    R语言中c()函数与paste()函数的区别说明

    这篇文章主要介绍了R语言中c()函数与paste()函数的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    yiyu_j11152022-01-12
  • R语言R语言编程学习绘制动态图实现示例

    R语言编程学习绘制动态图实现示例

    这篇文章主要介绍了R语言编程学习绘制动态图实现示例,有需要的的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪...

    微小冷7652022-01-18