python属于通用编程语言吗_R作为通用编程语言

我认为R的数据预处理能力——即从数据源中提取数据和分析步骤之前的一切——在过去三年(我使用R的时间长度)中有了实质性的改进。我每天都在使用python,在过去的七年左右的时间里,它的文本处理能力非常出色,我仍然毫不犹豫地使用R来完成您提到的任务。

不过,还有一些附加条件。首先,我建议仔细查看Q中任务集的几个外部包,特别是hash(类似python的键值数据结构),以及stringr(主要由基本库中不太友好的字符串操作函数的包装器组成)

stringr和hash都可以在CRAN上使用。> library(hash)

> dx = hash(k1=453, k2=67, k3=913)

> dx$k1

[1] 453

> dx = hash(keys=letters[1:5], values=1:5)

> dx

containing 5 key-value pair(s).

a : 1

b : 2

c : 3

d : 4

e : 5

> dx[a]

containing 1 key-value pair(s).

a : 1

> library(stringr)

> astring = 'onetwothree456seveneight'

> ptn = '[0-9]{3,}'

> a = str_extract_all(astring, ptn)

> a

[[1]]

[2] "456"

似乎还有一大群R用户,他们的日常工作中文本处理和文本分析占据了相当大的一部分——正如CRAN的Natural Language Processing Task View(大约20个这样的非正式面向域的包集合之一)所证明的那样。在这个任务视图中是packagetm,一个专门用于文本挖掘的函数的包。tm中包含了用于处理任务(如Q中提到的任务)的优化功能

此外,R有一个很好的包选择,可以在相当大的数据集(例如,>1 GB)上交互工作,通常不需要设置并行处理基础设施(但如果集群可用,它肯定可以利用集群)。在我看来,其中最令人印象深刻的是耶鲁大学的Michael Kane和John Emerson所著的一套“4}”(CRAN)软件包;这个项目包含了bigmemory、bigmanalytics、synchronicity、bigtabulate和biggalgebra。总之,这些包背后的技术包括:(i)将数据分配给共享内存,这使得能够通过单独的并发进程协调对数据的单个副本的共享访问;(ii)文件支持的数据结构(我相信,但我不确定,它是内存映射的文件结构的同义词,它的工作原理是使用指针实现从磁盘的快速访问,从而避免了对可用文件大小的RAM限制)。

尽管如此,R的标准库中有相当多的函数和数据结构使得交互处理接近普通RAM限制的数据更加容易。例如,.RData,一种本机二进制格式,使用起来尽可能简单(命令是save和load),并且它有很好的压缩:> library(ElemStatLearn)

> data(spam)

> format(object.size(spam), big.mark=',')

[1] "2,344,384" # a 2.34 MB data file

> save(spam, file='test.RData')

此文件“test.RData”仅为176 KB,大于10倍的压缩。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值