R: data.frame 生成、操作数组。重命名、增、删、改
###################################################
问题:生成、操作数据框 18.4.27
怎么生成数据框 data.frame、,,及其相关操作 ???
解决方案:
iris[,2,drop = FALSE] #用drop参数,控制截取的子集所生成变量的格式,为单列的"数据框"
dfm1 <- cbind(c1,c2,c3,c4); #cbind 要求向量c1 c2 c3 c4长度必须一样。
dfm2 <- rbind(c1,c2,c3,c4) #将数据以行进行结合。要求数据列数一样。
# dfm1 和 dfm2 就互为转置。
as.data.frame(matrix)
#相关操作:
dfm[1,]; #返回 第一行
dfm[,2]; #返回 第二列
dfm[1:5,2]; #返回 第一到五行,的第二列元素
dfm[1,2:5]; #返回 第一行,的第二到五列元素
dfm[,c(2,4)]; #返回 第二和第四列
dfm[,c(-2,-4)]; #返回 除第二和第四列外的所有其他列,均有效
dfm["name",]; #返回名为 “name” 的行
dfm[["name"]] #返回列名为 “name” 的列,一次只能返回一列
dfm$name #效果同上
讨论扩展:
行名重命名:row.names(iris1) <- iris1$ID
列名重命名:names(iris1)[names(iris1) == "temp"] <- "new_name"
aa = c(1,2,2,5,87);
Dfrm = data.frame(col1 = 2*aa,col2=aa+1,col3 = aa,col4=sqrt(aa))
#生成数据框,会按照最长的向量取其长度,短的自动循环补足
#data.frame特点:1、可以不影响原向量基础上改变数据;2、可以结合不同类型的数据;
另请参阅:
###################################################
问题:数据框 data.frame 重命名、增、删、改、等, 18.4.27
怎么对数据框 data.frame实施 增行列、删行列、改元素与赋值、 ???
解决方案:
#增加列
iris1 <- transform(iris1,log.SL=log(Sepal.Length)) #添加,修改数据。iris.add.col是数据集iris加上一列log.SL得到的。
iris1 <- cbind(iris1[,1:3],iris1$Species,iris1[,4:ncol(iris1)]) #插入到第四列,如果指定插入到某列后面,用行名查看指定的列是第几列,再执行本句
student$Age <- as.integer(format(Sys.Date(),”%Y”))-as.integer(format(student$Birthdate,”%Y”))
#删除列
iris.del.col <- transform(iris,Sepal.Length=NULL) #删除 Sepal.Length 列,新子集赋值给iris.del.col
iris.del.col2 <- subset(iris,select = -Sepal.Width) #删除 Sepal.Width 列,新子集赋值给iris.del.col2
iris$Sepal.Length = NULL
iris.del.col$Species <- iris.del.col$Petal.Width <- NULL #直接在原data.frame 删除了两列。
iris[c(-1,-3)] <- rep("NULL",length(iris)-2) #留下第一第三列,删除其他列。。。
#增加行 rbind()
v[length(v)+1] <- new_data
total1 <- rbind(dataframeA, dataframeB) #两个数据框必须有相同的变量,不过它们的顺序可以不一样。
#删除行 iris.del.row <- iris[-8,]
iris.del.row <- iris[c(-1,-8),]
讨论扩展:
#找出最大元素的下标 which.max(x)
#等于6.0的元素的下标 which(x==6.0)
# 大于5的元素的下标 which(x>5)
#append(v,10,after=3)在第三个元素后面加入10,新向量 <- (原向量,新元素) ,添加元素的及合并向量
x=iris[,1]; x[x==5.1]<-25; x #将x中等于5.1的元素变为25
x <- c(1,2,NA,4,5)
x[is.na(x)] <- 0
#合并文件,根据一列共同的标识符(比如唯一的id号)去合并两个变量。
#添加列:merge
ii = merge(inew,irisnew,by = "num",all = TRUE,sort=FALSE)
# all 为TRUE则取并集,无值补NA,,为FALSE则取交集。。 sort默认为T,即按照“num”排序。
#按共同标识符,即共同列 “num”,合并文件inew和irisnew,,第一个文件在前,后一个在后。
merge(x, y, by = c("k1","k2")) # ?merge 自带例子。
另请参阅:
R: data.frame 生成、操作数组。重命名、增、删、改的更多相关文章
- js数组的管理[增,删,改,查]
今天在设计表单的时候遇到对数组的一些处理的问题,比如说怎么创建一个数组,然后牵扯到数组的增删改查的方法.请看API FF: Firefox, N: Netscape, IE: Internet Exp ...
- Java操作MongoDB:连接&增&删&改&查
1.连接 ①方式一 MongoClientOptions.Builder builder = MongoClientOptions.builder(); //可以通过builder做各种详细配置 Mo ...
- delphi 文件的操作:重命名、复制、移动、删除
Delphi 文件的操作:重命名.复制.移动.删除第一种方法: RenameFile('Oldname', 'Newname'); CopyFile(PChar('Oldname'), PChar(' ...
- linux下的文件操作——批量重命名
概述:在日常工作中,我们经常需要对一批文件进行重命名操作,例如将所有的jpg文件改成bnp,将名字中的1改成one,等等.文本主要为你讲解如何实现这些操作 1.删除所有的 .bak 后缀: renam ...
- R: data.frame 数据框的:查询位置、排序(sort、order)、筛选满足条件的子集。。
################################################### 问题:数据框 data.frame 查.排序等, 18.4.27 怎么对数据框 data.f ...
- elastic操作-索引重命名,索引副本数修改
目前我们使用的elastic版本为2.3.5 当前版本没有直接的curl操作可以更改索引的名称,索引的副本数. 有直接更改索引副本数的api. curl -XPUT "192.168.1.1 ...
- R Data Frame
https://www.datamentor.io/r-programming/data-frame/ Check if a variable is a data frame or not We ca ...
- 简单的php数据库操作类代码(增,删,改,查)
这几天准备重新学习,梳理一下知识体系,同时按照功能模块划分做一些东西.所以.mysql的操作成为第一个要点.我写了一个简单的mysql操作类,实现数据的简单的增删改查功能. 数据库操纵基本流程为: 1 ...
- JS 数组, 对象的增查改删(多语法对比)
数据结构横向对比, 增, 查, 改, 删 建议: 在用数据结构的时候, 优先考虑Map和Set(考虑数据的唯一性), 放弃传统的数组和Object, 特别是比较复杂的数据结构时 数组 Map与Arra ...
随机推荐
- MD5加密“破解”在.NET平台实现最基本的理解
MD5作为一种散列算法,广泛用于密码传输过程中的“加密”(引号的意思是这并不是真正的加密,而是形成密码的散列值)过程.MD顾名思义Message Digest(报文摘要),可以将输入的密码,一般来说为 ...
- composer 更新国内镜像地址
composer config -g repo.packagist composer https://packagist.phpcomposer.com
- [原创]关于tomcat启动时时候端口被占用,8080,8005,8009
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- 【leetnode刷题笔记】Maximum Depth of binary tree
Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...
- java项目常用架构
三层架构 : 界面层/表现层 UI 业务逻辑层 BLL 针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理. 数据访问层 DAL 访问数据库 mvc : 而 MVC 是在三层架构的基 ...
- rail模型
rail是一种以用户为中心的性能模型,又google提出,其主要目标是让用户满意,主要分为response animation idle load四个部分 response 输入延迟时间小于100毫秒 ...
- Luogu-4166 [SCOI2007]最大土地面积
求平面内四边形的最大面积 显然四个端点都应该在凸包上,就先求凸包,然后\(n^2\)枚举四边形对角线,对于一个点\(i\),顺序枚举\(j\),同时用旋转卡壳的方法去找离对角线最远的两个点.总时间复杂 ...
- Delphi 运行Word VBA 宏 删除软回车
Sub 整理网页()'整理网页:删除软回车.删除空白段.使段落文字两端对齐Selection.WholeStory Selection.Find.ClearFormatting S ...
- 英语发音规则---(e)s和-(e)d的读音规则
英语发音规则---(e)s和-(e)d的读音规则 一.总结 一句话总结: 1.大部分可数名词的复数及动词第三人称单数的一般现在式,是以-(e)s结尾的? moths,glasses:digs,teac ...
- jQuery - 获取/设置内容和属性
获得内容 - text().html() 以及 val() 三个简单实用的用于 DOM 操作的 jQuery 方法: text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元 ...