R语言-- R语言数据类型(3)

列表

创建

# 1.1 创建一个列表L1,记录三位同学的姓名(A,B,C),编号(1,2,3),数学成绩(80,90,95),语文成绩(75,95,80)
L1 <- list(`姓名` = c('A','B','C'),`编号` = c(1,2,3),`数学` = c(80,90,95),`语文` = c(75,95,90))
L1

# 1.2 将L1个组件命更改为英文,记为L2
L2 <- L1
names(L2) <- c('name','id','math','lit')
L2

# 1.3 如果将L1和L2作为L3的两个组件,如何做?
L3 <- list(l1 = L1,l2 = L2)
L3

索引

# 2.1 请尝试利用不同方法索引L1中数据
L1$`姓名`[1]
L1[1]
L1[[1]][1]


# 2.2 A同学的数学成绩是多少
L1$`数学`[L1$`姓名`=='A']

# 2.3 数学成绩大于85分的同学是谁?
L1$`姓名`[L1$`数学`>85]


# 平均成绩超过85分的同学是谁?
L1$`姓名`[(L1$`数学`+L1$`语文`)/2>85]

在这里插入图片描述

特征与操作

# 3.1 列表L1中有几个组件
length(L1)

# 3.2 列表中存储了多少个数值型数据
is.numeric(L1[[1]])+is.numeric(L1[[2]])+is.numeric(L1[[3]])+is.numeric(L1[[4]])

# 3.3 将L1和L2组合成一个新的列表记为L3
L3 <- c(L1,L2)

数据框

创建

# 1.1 创建一个数据框df1,记录三位同学的姓名(A,B,C),编号(1,2,3),数学成绩(80,90,95),语文成绩(75,95,80)
df1 <- data.frame(name = c('A','B','C'),id = c(1,2,3), math = c(80,90,95), lit= c(75,95,80))
df1

# 1.2 将数据框的行名设置为姓名

rownames(df1)<- df1$name
df1

在这里插入图片描述

索引

# 2.1 请尝试利用不同方法索引df1中数据
df1[1]
df1[[1]]
df1$name
#略

# 2.2 A同学的数学成绩是多少
df1$math[df1$name == 'A']

# 2.3 数学成绩大于85分的同学是谁?
df1$name[df1$math >85]

# 2.4 平均成绩超过85分的同学是谁?
df1$name[(df1$math+df1$lit)/2>85]

特征与操作

# 3.1 获取数据框的行名
rownames(df1)


# 3.2 获取数据框的行数和列数
dms <- dim(df1)
rn <- dms[1]
cn <- dms[2]
dms

在这里插入图片描述
在这里插入图片描述

# 3.3 创建一个数据框df3,记录三位同学的姓名(A,B,C),英语成绩(85,80,95),将df3的信息与df1的信息合并为df5如何操作
df3 <- data.frame(name = c('A','B','C'),eng = c(85,80,95))
df5 <- merge(df1,df3)
df5

在这里插入图片描述
在这里插入图片描述

# 3.4 创建一个数据框df4,记录一位同学的姓名(D),编号4,数学成绩80,语文成绩95,英语成绩85,将df4的信息与df5的信息合并为df6
df4 <- data.frame(name = 'D', id = 4, math = 80, lit = 95, eng = 85)
df6 <- rbind(df5,df4)
df6
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值