R语言——数据操作(四)

目录

一、数据转换

二、取子集

三、数据框的翻转

四、对数据框进行计算

五、apply的用法 

六、数据的中心化与标准化 

七、参考


一、数据转换

读取文件

a <- read.csv('test.csv', header = T)

判断读取的类型

class(a)

is.data.frame(a)

强制格式转换数据框格式

as.data.frame(a)

强制转换为矩阵格式,每个元素都为一个字符串

as.matrix(data.frame(a))

查看判断数据类型及格式转换方法

methods(is) 和 methods(as)

给向量添加一个维度就会变成矩阵或者数组

二、取子集

如何对数据框取子集

View(b)可以查看数据框

使用切片取连续子集

取不连续子集

使用 which 进行逻辑筛选

这里的  “  ,”是取行

subset() 可以对向量、矩阵、数据框取子集

sample(x, n) :无放回抽样, 每个元素只能抽取一次

设置replace = T,则是有放回抽样

对数据框进行抽样

数据框的合并

data.frame(state.abb, state.area)

cbind(state.abb,state.area):合并列

rbind(state.abb,state.area):合并行要求新数据与原数据具有相同的列名

cbind,rbind也可以用于矩阵

要求是必须具有相同的行数或列数

如果合并的数据有重复项应该怎么处理呢

下图可以看到,51-101是重复项

duplicated(data3):判断是否为重复项

可以取出重复项,加 “  !”可以取反

使用 unique() 可直接完成去重操作

使用 length(rownames()) 和 length(colnames()) 可以查看行数和列数

三、数据框的翻转

t():数据框翻转

> data4<- t(data)

rev():反向

修改数据框中的值

transform(data, colname)

colname命名新的名字,则会生成新的一列

数据框排序

sort是对向量进行排序,返回排序后的结果

order也可以对向量进行排序,返回的是对应值所在的位置,而不是结果 

order可以根据索引对数据框进行排序

取与 order 默认相反的顺序

在变量前加一个 “ - ”

rank是求秩的函数

返回向量对应元素的排名

四、对数据框进行计算

将矩阵转为数据框

rowSums 计算行和

colMeans 计算列均值

将计算的行和 和 列均值添加到 原数据框 中

可以看到,cm 行 Total 列被第一列的值替代

五、apply的用法 

apply(x,MARGIN,FUN)
x是数组、矩阵或数据框;MARGIN等于1代表行,等于2代表列;FUN代表要应用的函数。
如:
apply(WorldPhones,MARGIN=1,FUN = sum)
apply(WorldPhones,MARGIN=2,FUN = mean)
apply(WorldPhones,MARGIN=2,FUN = Var)
apply(WorldPhones,MARGIN=2,FUN = log)

其他apply系列函数
lapply(x,FUN):l 代表list,x是列表,返回值是列表。
sapply(x,FUN):s代表simplify,x是列表,返回值是向量或者矩阵。
tapply(x,INDEX,FUN):x是向量或其他,INDEX是一组因子,利用这个因子,可以对第一个参数的数据进行分组。

六、数据的中心化与标准化 

数据中心化:是指数据集中的各项数据减去数据集的均值。
数据标准化:是指在中心化之后再除以数据集的标准差,即数据集中的各项数据减去数据集的均值再除以数据集的标准差。
简单来看: 
x <- c(1,2,3,6,3)
中心化:x-mean(x)
标准化:(x-mean(x))/sd(x)

R中实现数据中心化和标准化可以使用scale函数:
scale(x,center,scale):center为TRUE就是做中心化处理,scale为TRUE就是做标准化处理。

七、参考

R语言入门与数据分析

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
R语言数据科学中非常流行和强大的一种编程语言,用于数据分析和数据挖掘。尽管它提供了丰富的功能和包,但在使用R进行数据挖掘时,仍然存在一些常见的问题。 首先,R语言的学习曲线相对陡峭,尤其对于初学者来说。R语言的语法和概念与其他编程语言有所不同,需要一定的时间和精力来掌握。因此,在开始使用R进行数据挖掘之前,建议用户先学习基本的R语言知识和技能。 其次,R语言数据处理速度相对较慢。由于R是一种解释型语言,对于大型数据集的处理可能会显得比较缓慢。为了提高数据挖掘的效率,可以使用一些优化技巧,如向量化、使用并行计算等。此外,R在内存管理方面也有一些限制,处理大型数据集时可能会导致内存溢出等问题。 另外,R语言社区的包和函数数量庞大,但质量参差不齐。用户在进行数据挖掘时,可能会遇到某些包或函数不兼容、文档不全面等问题。为了解决这些问题,用户可以仔细查看包的文档和说明,寻求社区的帮助和讨论,或者使用经过广泛测试和应用的常用包。 此外,数据挖掘分析中常涉及到特征选择、数据清洗、模型选择和调参等问题。这些问题需要专业背景和经验支持。对于初学者或者没有相关领域知识的人来说,可能需要花费更多的时间和精力来理解和解决这些问题。 总之,虽然R语言数据挖掘领域有着广泛的应用,但在实际操作中也存在一些常见的问题。通过学习和积累经验,用户可以更好地应对和解决这些问题,提高数据挖掘的效率和准确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Billie使劲学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值