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的更多相关文章

  1. R语言合并data.frame

    Merging Data Adding Columns To merge two data frames (datasets) horizontally,  use the merge functio ...

  2. R语言基础-data.frame

    data.frame比较像表格,每一列是一个向量,即每列中的元素是同一类型:所有列具有相同的长度. x = 10:1 y = -4:5 q = c("Ha","oh&qu ...

  3. 如何将R中的data frame对象的数据导入到DB

    在使用ARIMA模型来预测我们的销量的时候,如果保存预测版本进DB,以供后续分析呢 1. 在定义变量阶段我们定义了dfResult      <- data.frame() 这是一个data f ...

  4. R list和data frame 排序

    pathway_name = rownames(g1) tm <- list('P-value' = c(), 'Pathway_name' = c()) :dim(g1)[]){ result ...

  5. R语言操作数据库

    以下内容出自http://www.douban.com/note/172387172/ CRAN上有很多R的数据库支持包,使R能够对数据库进行读写操作.这些包有:RODBC.DBI.RMySQL.RO ...

  6. R语言操作mysql上亿数据量(ff包ffbase包和ETLUtils包)

    平时都是几百万的数据量,这段时间公司中了个大标,有上亿的数据量. 现在情况是数据已经在数据库里面了,需要用R分析,但是完全加载不进来内存. 面对现在这种情况,R提供了ff, ffbase , ETLU ...

  7. R语言︱非结构化数据处理神器——rlist包

    本文作者:任坤,厦门大学王亚南经济研究院金融硕士生,研究兴趣为计算统计和金融量化交易,pipeR,learnR,rlist等项目的作者. 近年来,非关系型数据逐渐获得了更广泛的关注和使用.下面分别列举 ...

  8. R语言CSV文件

    R语言CSV文件 在R语言中,我们可以从存储在R环境外部的文件读取数据.还可以将数据写入由操作系统存储和访问的文件. R可以读取和写入各种文件格式,如:csv,excel,xml等. 在本章中,我们将 ...

  9. 促销R语言应用性能

    1.       绩效评估 时间的确定 R测量时间是在最简单的方式提供是system.time性能. system.time(expr, gcFirst=TRUE) 这个函数会在不减少程序执行性能的情 ...

随机推荐

  1. javascript文档DOC

    python.java都有官网,有官方文档 javascript却找不到官网和官方文档 js大全 https://github.com/jobbole/awesome-javascript-cn md ...

  2. jmeter定时器

    一.定时器的作用 1.定时器是在每个sampler(采样器)之前执行的,而不是之后(无论定时器位置在sampler之前还是下面): 2.当执行一个sampler之前时,所有当前作用域内的定时器都会被执 ...

  3. htm基础知识,css的链入以及标签分类。

    <!DocTYPE>  DOC--Document 文档  TYPE  类型  文档类型 告诉浏览器这是什么文件 单标签: meta  设置   charset  设置编码 双标签: 开始 ...

  4. Hive错误:User root is not allowed to impersonate anonymous

    修改hadoop 配置文件 etc/hadoop/core-site.xml,加入如下配置项: <property> <name>hadoop.proxyuser.root.h ...

  5. 栈与队列(Stack and Queue)

    1.定义 栈:后进先出(LIFO-last in first out):最后插入的元素最先出来. 队列:先进先出(FIFO-first in first out):最先插入的元素最先出来. 2.用数组 ...

  6. php基础-2

    php的逻辑运算 &&符号 <?php function tarcrnum() { for ($i = 0; $i <= 100; $i++) { if ($i % 2 = ...

  7. Python-random 随机数模块

    random 随机数模块格式: import random 引入随机模块文件 1 import random 2 3 print(random.random())#(0,1)----float 大于0 ...

  8. LeetCode - Flood Fill

    An image is represented by a 2-D array of integers, each integer representing the pixel value of the ...

  9. 【BZOJ1305】【CQOI2009】 dance跳舞

    看menci的博客点出二分的思路然后做出来,menci太强辣 原题: 一次舞会有n个男孩和n个女孩.每首曲子开始时,所有男孩和女孩恰好配成n对跳交谊舞.每个男孩都不会和同一个女孩跳两首(或更多)舞曲. ...

  10. CH3B04 Xiao 9*大战朱最学

    题意 3B04 Xiao 9*大战朱最学 0x3B「数学知识」练习 背景 Xiao 9*.朱最学.小全同属LOI,朱某某同学由于学习认真得到了小全的仰慕~~送其外号---朱最学.最学想:神牛我当不成难 ...