R-基础:数据框操作


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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值