###################################################

问题:生成、操作数据框   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 生成、操作数组。重命名、增、删、改的更多相关文章

  1. js数组的管理[增,删,改,查]

    今天在设计表单的时候遇到对数组的一些处理的问题,比如说怎么创建一个数组,然后牵扯到数组的增删改查的方法.请看API FF: Firefox, N: Netscape, IE: Internet Exp ...

  2. Java操作MongoDB:连接&增&删&改&查

    1.连接 ①方式一 MongoClientOptions.Builder builder = MongoClientOptions.builder(); //可以通过builder做各种详细配置 Mo ...

  3. delphi 文件的操作:重命名、复制、移动、删除

    Delphi 文件的操作:重命名.复制.移动.删除第一种方法: RenameFile('Oldname', 'Newname'); CopyFile(PChar('Oldname'), PChar(' ...

  4. linux下的文件操作——批量重命名

    概述:在日常工作中,我们经常需要对一批文件进行重命名操作,例如将所有的jpg文件改成bnp,将名字中的1改成one,等等.文本主要为你讲解如何实现这些操作 1.删除所有的 .bak 后缀: renam ...

  5. R: data.frame 数据框的:查询位置、排序(sort、order)、筛选满足条件的子集。。

    ################################################### 问题:数据框 data.frame 查.排序等,   18.4.27 怎么对数据框 data.f ...

  6. elastic操作-索引重命名,索引副本数修改

    目前我们使用的elastic版本为2.3.5 当前版本没有直接的curl操作可以更改索引的名称,索引的副本数. 有直接更改索引副本数的api. curl -XPUT "192.168.1.1 ...

  7. R Data Frame

    https://www.datamentor.io/r-programming/data-frame/ Check if a variable is a data frame or not We ca ...

  8. 简单的php数据库操作类代码(增,删,改,查)

    这几天准备重新学习,梳理一下知识体系,同时按照功能模块划分做一些东西.所以.mysql的操作成为第一个要点.我写了一个简单的mysql操作类,实现数据的简单的增删改查功能. 数据库操纵基本流程为: 1 ...

  9. JS 数组, 对象的增查改删(多语法对比)

    数据结构横向对比, 增, 查, 改, 删 建议: 在用数据结构的时候, 优先考虑Map和Set(考虑数据的唯一性), 放弃传统的数组和Object, 特别是比较复杂的数据结构时 数组 Map与Arra ...

随机推荐

  1. 【LeetCode】数组排列问题(permutations)(附加next_permutation解析)

    描述 Given a collection of distinct integers, return all possible permutations. Example: Input: [1,2,3 ...

  2. 《程序员代码面试指南》第一章 栈和队列 最大值减去最小值小于或等于num的数量

    题目 给定整数数组arr和整数num,共返回多少的数组满足如下情况 max(arr[i...j]) - min(arr[i...j]) <= num max(arr[i...j])表示数组arr ...

  3. react项目中antd组件库的使用需要注意的问题

    antd是蚂蚁金服推出的ui组件库,给我们在react项目开发中提供了大大的便利.但在使用的过程中,或多或少的会遇到一些问题,毕竟,用的是别人的东西,就得遵守别人的规则嘛!官方文档:https://a ...

  4. sass表达式前后出现空格

    最近发现一个问题,当我用mixin将px转rem时: @mixin pxToRem($remVal: 1){ font-size: ($remVal/75)rem; }.a { @include px ...

  5. Cisco IOS版本命名规则

    首先说说IOS的运行平台,c2500.c2600.c4500.c2950代表运行此IOS的硬件平台,例如:C2500指2500系列路由器. 其次,看看IOS的版本,IOS有主版本号:11.0.11.1 ...

  6. 让IE6支持max_height、max_width等等

    推荐使用min-height:500px;_height:500px;来解决IE6不能max和min属性的问题.

  7. HDU 2736 Surprising Strings

                                    Surprising Strings Time Limit:1000MS     Memory Limit:65536KB     64 ...

  8. linux新增用户和删除用户

    新增用户 新增用户命令:useradd 参数: 参数 说明 -u 指定UID,也就是自定义UID -g 知道GID,也就是初始化用户组,/etc/passwd文件中的第四个字段. -G 后面接用户组的 ...

  9. Hadoop- HDFS的API操作

    1.引入依赖 <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop- ...

  10. Java的TCP网络编程

    服务端代码: package socket; import java.io.BufferedReader; import java.io.IOException; import java.io.Inp ...