使用R语言-操作data.frame
1 向一个data.frame指定列插入一列新数据
1.1 插入一列到指定位置
y<-1:4
data1 <-data.frame(x1=c(1,3,5,7), x2=c(2,4,6,8),x3=c(11,12,13,14),x4=c(15,16,17,18))
data2<-cbind(data1[,1:2],y,data1[,3:ncol(data1)])
插到data1末尾
data2<-cbind(data1,y)
插到第一列
data2<-cbind(y,data1)
2 向一个data.frame指定行插入一行新数据
2.1 插入一行到指定位置
data1<- data.frame(x1=runif(10),x2= runif(10),x3= runif(10))
row<- c(1, 1, 1)
data2<- rbind(data1[1:5,], row, data1[6:nrow(data1), ])
插入到data1末尾
data2<- rbind(data1, row)
插入到data1第一行
data2<- rbind(row, data1)
3 给data frame设置列名
colnames(data2) <- c('row1','row3','row3')
4 创建一个空的data frame,并制定列名(方法有点挫,目前还没找到其他方式)
4.1 创建一个包含一行的,然后用-1取
emptyDF <- data.frame(row1 = c(NA), row2 = c(NA))
emptyDF <- emptyDF[-1,]
4.2 通过matrix创建data frame
emptyDF <- data.frame(matrix(c(NA), byrow = TRUE,dimnames = list(day = c(),condition = c("outlook","temperature","humidity","wind")), nrow=0, ncol=4))
5 创建一个data frame,并查看
trainSet2 <-data.frame(
size=c("大","小","大","大","小","小"),
weight=c("轻","重","轻","轻","重","轻"),
color=c("红","红","红","绿","红","绿"),
taste=c("good","good","bad","bad","bad","good")
)
size weight color taste
1 大 轻 红 good
2 小 重 红 good
3 大 轻 红 bad
4 大 轻 绿 bad
5 小 重 红 bad
6 小 轻 绿 good
6 查看行名
row.names(trainSet2)
7 查看列名
colnames(trainSet2)
8 数据访问
访问第一行
trainSet2[1,]
访问第一列
trainSet2[,1]
trainSet2$size
trainSet2[[1]]
trainSet2[["size"]]
访问多行,例如1,2行
trainSet2[1:2,]
访问多列,例如1,2列
trainSet2[,1:2]
trainSet2[c("size","weight")]
9 添加新列
trainSet2$newc1 <- c(1,2,3,4,5,6)
trainSet2 <- within(trainSet2,{newc2 <- color})
10 数据查询
10.1 根据条件查询
查询taste为good的所有行
trainSet2[trainSet2$taste == "good",]
查询taste为good的指定行
trainSet2[trainSet2$taste == "good",1]
trainSet2[trainSet2$taste == "good",1:2]
trainSet2[trainSet2$taste == "good",c("size","color")]
也可以用which,跟上面的类似
trainSet2[which(trainSet2$taste == "good"),c("size","color")]
使用subset,会简化查询,可以指定条件,指定选择列
subset(trainSet2,taste == "good" & newc1 < 5,select = c("size","taste"))
11 使用sql查询data frame
对于熟悉sql的是个福音啊
11.1 安装sqldf
install.packages('sqldf')
11.2 引入sqldf
library(sqldf)
11.3 查询示例
result <- sqldf("select * from trainSet2 where size='大'")
11.4 链接合并示例,两个表根据newc1 和 fkey进行链接
trainSet3 <- data.frame(fkey = c(1,2,3,4),newc3=c("a","b","c","d"))
resdult <- merge(trainSet2,trainSet3,by.x = "newc1",by.y = "fkey")
newc1 size weight color taste newc2 newc3
1 1 大 轻 红 good 红 a
2 2 小 重 红 good 红 b
3 3 大 轻 红 bad 红 c
4 4 大 轻 绿 bad 绿 d
使用R语言-操作data.frame的更多相关文章
- R语言合并data.frame
Merging Data Adding Columns To merge two data frames (datasets) horizontally, use the merge functio ...
- R语言基础-data.frame
data.frame比较像表格,每一列是一个向量,即每列中的元素是同一类型:所有列具有相同的长度. x = 10:1 y = -4:5 q = c("Ha","oh&qu ...
- 如何将R中的data frame对象的数据导入到DB
在使用ARIMA模型来预测我们的销量的时候,如果保存预测版本进DB,以供后续分析呢 1. 在定义变量阶段我们定义了dfResult <- data.frame() 这是一个data f ...
- R list和data frame 排序
pathway_name = rownames(g1) tm <- list('P-value' = c(), 'Pathway_name' = c()) :dim(g1)[]){ result ...
- R语言操作数据库
以下内容出自http://www.douban.com/note/172387172/ CRAN上有很多R的数据库支持包,使R能够对数据库进行读写操作.这些包有:RODBC.DBI.RMySQL.RO ...
- R语言操作mysql上亿数据量(ff包ffbase包和ETLUtils包)
平时都是几百万的数据量,这段时间公司中了个大标,有上亿的数据量. 现在情况是数据已经在数据库里面了,需要用R分析,但是完全加载不进来内存. 面对现在这种情况,R提供了ff, ffbase , ETLU ...
- R语言︱非结构化数据处理神器——rlist包
本文作者:任坤,厦门大学王亚南经济研究院金融硕士生,研究兴趣为计算统计和金融量化交易,pipeR,learnR,rlist等项目的作者. 近年来,非关系型数据逐渐获得了更广泛的关注和使用.下面分别列举 ...
- R语言CSV文件
R语言CSV文件 在R语言中,我们可以从存储在R环境外部的文件读取数据.还可以将数据写入由操作系统存储和访问的文件. R可以读取和写入各种文件格式,如:csv,excel,xml等. 在本章中,我们将 ...
- 促销R语言应用性能
1. 绩效评估 时间的确定 R测量时间是在最简单的方式提供是system.time性能. system.time(expr, gcFirst=TRUE) 这个函数会在不减少程序执行性能的情 ...
随机推荐
- IDEA 导出项目war包
部署 Maven 项目,使用 “mvn package” 命令出现错误,不能正确打包时的解决方法 一.最简单.最快的方式: 思路,本地能运行,直接把本地编译后能正确运行的项目文件打包,传到服务器部署即 ...
- es6的let与es5的var定义变量的区别
es6的let与es5的var定义变量的区别 自身新手第一次接触let关键字的时候,不知道let与var的区别,本能认为是一样,但非如此,比如下述的代码运行就会报错: let hello = 'hel ...
- HDU 1159:Common Subsequence(LCS模板)
Common Subsequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- 关闭MongoDB服务的几种方法
MongoDB 提供几种关闭服务的命令,具体为以下: 一 使用 Crtl+C 关闭 [mongo@redhatB data]$ mongod --dbpath=/database/mongodb/da ...
- pycharm远程调试配置
目录: 安装pycharm 配置pycharm远程调试 使用测试 一.安装pycharm(略) 二.配置pycharm远程调试 1.菜单--->Tools--->Deployment--- ...
- confluence 新tab 页面打开 kibana short link
confluence 新tab 页面打开 https://confluence.atlassian.com/confkb/how-to-force-links-to-open-in-a-new-win ...
- centos7配置openldap服务器
参考链接 https://www.cnblogs.com/bigbrotherer/p/7251372.html 上面这篇参考文件在最后登录是有问题的 vi /etc/openldap/sldap.c ...
- taro 微信小程序原生作用域获取
在 Taro 的页面和组件类中,this 指向的是 Taro页面或组件实例. 但是一般我们需要获取 Taro的页面和组件 所对应的 小程序原生页面和组件实例,这个时候我们可以通过 this.$scop ...
- node api 之:Buffer
在 ECMAScript 2015 引入 TypedArray 之前,JavaScript 语言没有读取或操作二进制数据流的机制. Buffer 类被引入作为 Node.js API 的一部分,使其可 ...
- python的requests快速上手、高级用法和身份认证
https://blog.csdn.net/qq_25134989/article/details/78800209 快速上手 迫不及待了吗?本页内容为如何入门 Requests 提供了很好的指引.其 ...