R-基础:数据框操作

2023-10-31


title: “dataframe”
author: “intro”
date: “2022/1/20”
output: html_document

knitr::opts_chunk$set(echo = TRUE)

R基础

在学习中分享,在分享中学习。
R中数据框是常见的数据结构类型,数据框的基础操作在数据处理中至关重要,这是一篇关于数据框基础操作的分享文档,和大家一起学习一起进步。

数据框

#####数据框####
#创建数据框#
df <- data.frame(c(LETTERS[1:10]),c(letters[11:20]),c(21:30))#用data.frame()函数创建数据框
#查看数据框#
class(df)#查看数据框的类型
is.data.frame(df)#判断是否为数据框
str(df)#查看数据框的结构10个观测值,3个变量
dim(df)#查看维度
df#查看数据框
View(df)#通过表格查看数据框
head(df,n=5)#查看数据框的前5行,参数控制查看的行数
tail(df,2)#查看数据框的最后2行
?head#查看head()的帮助文档
#名称#
names(df)#查看列名
colnames(df)#查看列名
rownames(df)#查看行名
names(df) <- c('LETTERS','letters','numbers')#修改列名
colnames(df)[3] <- 'newnames'#修改列名
colnames(df)
rownames(df)[1] <- 'hello'#修改行名
rownames(df)
#获取元素#
#位置获取#
df[1,]#获取第1行
df[,2]#获取第2列
df[1,2]#位置获取第1行第2列的元素[i,j]i行j列
df[1:5,2:3]#获取第1-5行,2-3列
#逻辑获取#
df[which(df=='H'),]#获取H行
df[df$LETTERS=='I',]#获取I行
df[df$numbers>=25,]#获取大于25的行
#名称获取#
df[c('hello'),c('LETTERS','newnames')]#通过名称直接获取
df$letters#$符号+列获取列的数据
df_new <- subset(df,df$LETTERS>'C',select = c(1,3))#subset()函数选择大于C的行和1,3列
df_new
#删除特定的元素#
df[-c(5:10),-2]#删除最后的6项和第2列
#增添新的列#
df$rnorm <- rnorm(10,0,1)#增加一行,均值为0,标准差为1的10个正态分布的数据
df
#调整顺序#
df_new1 <- df[,c(3,1,2)]
df_new1

代码+运行结果

#创建数据框#
df <- data.frame(c(LETTERS[1:10]),c(letters[11:20]),c(21:30))#用data.frame()函数创建数据框
#查看数据框#
class(df)#查看数据框的类型
## [1] "data.frame"
is.data.frame(df)#判断是否为数据框
## [1] TRUE
str(df)#查看数据框的结构10个观测值,3个变量
## 'data.frame':    10 obs. of  3 variables:
##  $ c.LETTERS.1.10.. : chr  "A" "B" "C" "D" ...
##  $ c.letters.11.20..: chr  "k" "l" "m" "n" ...
##  $ c.21.30.         : int  21 22 23 24 25 26 27 28 29 30
dim(df)#查看维度
## [1] 10  3
df#查看数据框
##    c.LETTERS.1.10.. c.letters.11.20.. c.21.30.
## 1                 A                 k       21
## 2                 B                 l       22
## 3                 C                 m       23
## 4                 D                 n       24
## 5                 E                 o       25
## 6                 F                 p       26
## 7                 G                 q       27
## 8                 H                 r       28
## 9                 I                 s       29
## 10                J                 t       30
View(df)#通过表格查看数据框
head(df,n=5)#查看数据框的前5行,参数控制查看的行数
##   c.LETTERS.1.10.. c.letters.11.20.. c.21.30.
## 1                A                 k       21
## 2                B                 l       22
## 3                C                 m       23
## 4                D                 n       24
## 5                E                 o       25
tail(df,2)#查看数据框的最后2行
##    c.LETTERS.1.10.. c.letters.11.20.. c.21.30.
## 9                 I                 s       29
## 10                J                 t       30
?head#查看head()的帮助文档
## starting httpd help server ... done
#名称#
names(df)#查看列名
## [1] "c.LETTERS.1.10.."  "c.letters.11.20.." "c.21.30."
colnames(df)#查看列名
## [1] "c.LETTERS.1.10.."  "c.letters.11.20.." "c.21.30."
rownames(df)#查看行名
##  [1] "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9"  "10"
names(df) <- c('LETTERS','letters','numbers')#修改列名
colnames(df)[3] <- 'newnames'#修改列名
colnames(df)
## [1] "LETTERS"  "letters"  "newnames"
rownames(df)[1] <- 'hello'#修改行名
rownames(df)
##  [1] "hello" "2"     "3"     "4"     "5"     "6"     "7"     "8"     "9"    
## [10] "10"
#获取元素#
#位置获取#
df[1,]#获取第1行
##       LETTERS letters newnames
## hello       A       k       21
df[,2]#获取第2列
##  [1] "k" "l" "m" "n" "o" "p" "q" "r" "s" "t"
df[1,2]#位置获取第1行第2列的元素[i,j]i行j列
## [1] "k"
df[1:5,2:3]#获取第1-5行,2-3列
##       letters newnames
## hello       k       21
## 2           l       22
## 3           m       23
## 4           n       24
## 5           o       25
#逻辑获取#
df[which(df=='H'),]#获取H行
##   LETTERS letters newnames
## 8       H       r       28
df[df$LETTERS=='I',]#获取I行
##   LETTERS letters newnames
## 9       I       s       29
df[df$numbers>=25,]#获取大于25的行
## [1] LETTERS  letters  newnames
## <0 rows> (or 0-length row.names)
#名称获取#
df[c('hello'),c('LETTERS','newnames')]#通过名称直接获取
##       LETTERS newnames
## hello       A       21
df$letters#$符号+列获取列的数据
##  [1] "k" "l" "m" "n" "o" "p" "q" "r" "s" "t"
df_new <- subset(df,df$LETTERS>'C',select = c(1,3))#subset()函数选择大于C的行和1,3列
df_new
##    LETTERS newnames
## 4        D       24
## 5        E       25
## 6        F       26
## 7        G       27
## 8        H       28
## 9        I       29
## 10       J       30
#删除特定的元素#
df[-c(5:10),-2]#删除最后的6项和第2列
##       LETTERS newnames
## hello       A       21
## 2           B       22
## 3           C       23
## 4           D       24
#增添新的列#
df$rnorm <- rnorm(10,0,1)#增加一行,均值为0,标准差为1的10个正态分布的数据
df
##       LETTERS letters newnames      rnorm
## hello       A       k       21  1.4281738
## 2           B       l       22 -2.4716680
## 3           C       m       23  0.3767536
## 4           D       n       24 -1.7695230
## 5           E       o       25  1.6973431
## 6           F       p       26 -0.4065415
## 7           G       q       27 -0.3756224
## 8           H       r       28  1.8844378
## 9           I       s       29  1.1797981
## 10          J       t       30  0.5154794
#调整顺序#
df_new1 <- df[,c(3,1,2)]
df_new1
##       newnames LETTERS letters
## hello       21       A       k
## 2           22       B       l
## 3           23       C       m
## 4           24       D       n
## 5           25       E       o
## 6           26       F       p
## 7           27       G       q
## 8           28       H       r
## 9           29       I       s
## 10          30       J       t
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R-基础:数据框操作 的相关文章

  • 排序算法(4)----快速排序

    快速排序由C A R Hoare在1962年提出 它的基本思想是 通过一趟排序将要排序的数据分割成独立的两部分 其中一部分的所有数据都比另外一部分的所有数据都要小 然后再按此方法对这两部分数据分别进行快速排序 整个排序过程可以递归进行 以此
  • 基于Java+SpringBoot+vue的租房网站设计与实现(附源码,使用教程)

    基于Java SpringBoot vue的租房网站设计与实现 文章目录 基于Java SpringBoot vue的租房网站设计与实现 一 前言介绍 二 主要技术 三 系统设计 部分 3 1 主要功能模块设计 3 2 系统登录设计 四 数
  • 【Vscode】远程内存占用大

    查看远程服务器上的扩展 依次删除 重新连接后观察内存占用 此扩展占用较高 约2G 前后端项目 依赖较多导致

随机推荐

  • “三天打鱼,两天晒网“的c语言实现

    中国有句俗话叫 三天大鱼 两天晒网 某渔夫从2000年1月1日开始 三天打鱼 两天晒网 问该渔夫在以后的某一天中是在 打鱼 还是在 晒网 需求 用户输入某年某月某日 判断出该日期是在打鱼还是在晒网 思路 1 接收键盘输入的日期 2 计算从2
  • [靶场] SQLi-Labs Less62-Less69

    66 Less62 请求方式 注入方式 备注 GET 盲注 130次语句以内完成 分析 我们需要指定challenges数据库中表名 表名为10个字符 包含数字和小写字母 还需要知道表中的字段名 字段名为secret XX XX为4个字符
  • LDO的原理以及重要指标

    http t csdn cn YaR0G 本文告诉你三件事 LDO的基本原理 LDO都有哪些参数 有什么意义 选型时的注意事项 1 LDO基本原理 LDO是Low Dropout Regulator的缩写 意思是低压差线性稳压器 低压差 是
  • 深度学习中的常用八种卷积运算简介

    参考资料 https towardsdatascience com a comprehensive introduction to different types of convolutions in deep learning 66928
  • iOS 14 自定义画中画悬浮窗 Custom AVPictureInPictureController 实现方案

    iOS 14 基于 AVPictureInPictureController 实现自定义画中画 涵盖所有功能与难点 市面上的各种悬浮钟和提词器的原理都是基于此 Demo源码在文末 使用 iOS 画中画的要求 真机 不能使用模拟器 iOS 1
  • 重构Webpack系列之二 ---- 入口起点

    重构Webpack系列之二 入口起点 一 概念 入口起点 entry point 指示Webpack应该使用哪个模块 来作为构建其内部依赖图的开始 进入入口起点后 Webpack会找出哪些模块和库是跟入口起点 直接或间接 有依赖的关系 默认
  • 开源云原生与行业应用

    ChinaOSC 2022开源云原生与行业应用论坛将于2022年8月21日13 30 17 15在陕西省西安高新国际会议中心召开 本论坛将邀请多位知名开源云原生领域的贡献者 实践者 分享和探讨开源云原生赋能产品迭代 行业应用创新的最佳实践
  • json格式请求http

    例子 JsonObject response postJsonData url gson toJson applyInfo applyInfo 一个java对象 发送 post 请求 param url 地址 return link Jso
  • Python---数据清洗

    首先导入数据 并读取前5行 然后处理店铺数据 清洗comment字段 先筛选出有 条 字的评论 再用spilt分割数据 提取评论条数后转换数据类型 用的是astype转换 并查看前5行 清洗其他字段也是一样的处理 比如清洗人均价格这个字段
  • el-table选中数据勾选状态不清空的做法&&监听拿到勾选的所有数据

    1 el table结合el pagination 在翻页之后再返回勾选的数据状态会消失 解决办法
  • RocketMQ Bug修复记录

    文章目录 1 Bug详情及解决 1 1 Bug 来龙去脉 1 2 验证这真的是一个BUG 1 2 1 BrokerFixedThreadPoolExecutor 1 2 2 FutureTaskExt 1 2 3 RegisterBroke
  • Ubuntu下通过CMake文件编译CUDA+OpenCV代码操作步骤

    在 CUDA Test 工程中 CUDA测试代码之前仅支持在Windows10 VS2013编译 今天在Ubuntu 14 04下写了一个CMakeLists txt文件 支持在Linux下也可以通过CMake编译CUDA Test工程 C
  • IELTS listening lesson from Simon

    IELTS listening lesson from Simon Video Lines Recorded by Marshal Zheng 文章目录 IELTS listening lesson from Simon overall s
  • Python实验及注意点总结

    第一次上机 实验一 随机生成两个小于100的整数 打印其中一个数的数据类型和存储地址 求这两个数的和 差 积 商 幂运算 import random x random randint 1 100 y random randint 1 100
  • L2TP或者PPTP拨号后只能访问远端内网而无法访问Internet的原因及解决办法

    原理 PPTP L2TP拨号成功后 由于修改了主机的缺省路由 导致访问外网的数据都通过VPN隧道转发 也就是访问远端局域网以及外网的数据都发送给了TL ER6110 6120 从而只能访问远端内网 而不能访问Internet 以 win11
  • Win10相机端无法启动解决方案

    Win10相机端无法启动解决方案 背景 设备驱动正常以及没有被其他应用占用相机端的情况下 偶然发现一个问题 利用第三方软件如微信 QQ以及VS结合Opencv库都可以打开系统摄像头 但是手动打开摄像头总是失败 返回错误码0xA00F4246
  • 前端系列——vue2+高德地图web端开发(使用和引入)

    vue2 高德地图web端开发 使用和引入 前言 基础 准备工作 高德地图的个人开发者注册 高德api网址 1 点击进行注册 2 注册完之后进入控制台 3 创建新应用 4 添加 高德 2 0 新增 创建vue2的项目 npm 引入高德 官方
  • pytorch BUG :.grad=NONE? pytorch参数的使用

    在实验中 输出发现网络的某个新增的参数不更新 在输出 tensor grad NONE 然后查找资料进行修改输出从 tensor 0 9925 device cuda 0 grad fn
  • 面试题目搜集(3)

    本博客的 面试题目搜集系列不错 1 面试题目搜集1 2 面试题目搜集2 3 面试题目搜集3 4 面试题目搜集4 5 面试题目搜集5 6 面试题目搜集6 1 有这样一个数组A 大小为n 相邻元素差的绝对值都是1 如 A 4 5 6 5 6 7
  • R-基础:数据框操作

    title dataframe author intro date 2022 1 20 output html document knitr opts chunk set echo TRUE R基础 在学习中分享 在分享中学习 R中数据框是