知乎 为什么控制不住自己内部控制 知乎语言

Salam ◆ 151112 ◇ 【知乎】为什么回族会失去自己的语言文字_伊斯俩目吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:8,948贴子:
Salam ◆ 151112 ◇ 【知乎】为什么回族会失去自己的语言文字
历史上我们所指的的“回回人”并不都指的“大食人”。比如旧唐书所载西域有“波斯”“大食”两种。波斯是,而大食是。到了北宋,“梦溪笔谈”第一次说“回回”,是用来指称河中一带(见附录1)信仰回教的各种民族。从此,回回人不同于回鹘(突厥)人而存在。因为当时的回鹘或回纥人,是信仰的。而回回人是信仰回教的。也就是说,回回人是说波斯语的突厥、波斯、阿拉伯等各民族的总和。 那么回回话呢?回回话自然就是说的波斯语,而不是大多数人以为的阿拉伯语。需要指出的是,回回人,既然是,他们必然懂得部分阿拉伯语,比如每日诵经必然是阿拉伯语的,但是生活语言,必然是波斯语。最简单的例子来区分,那就是,每日礼拜是阿拉伯语,每日时间也用阿拉伯语来表示——但是河中的回回人,除了礼拜诵经外,其他举义、时间、生活都是波斯语。 而的波斯语,实际上是波斯语的一种方言,即达里语。这种语言今天在、地区仍然在使用。达里语是波斯语里面比较古老的方言,今天已经濒临衰落。古达里语的教科书,在已经几乎绝迹,而我国却有。清朝雍乾时期的著名阿訇,常志美先生就精通达里语,他编写的教材曾经被人拿去研究出版。 宋朝的时候,很多、波斯人和突厥人从路上和来到中国。他们商贸、通婚百年。而元朝又有大量军民被按照军事单位充实各个省份,出现了回回村镇。这时期波斯语、阿拉伯语属于退化阶段。举例,杭州的阿老丁,是阿拉伯人,但是到孙子的时候,阿拉伯语退化,而汉语优异,写诗作赋俨然大儒。 到了明朝,禁止回回人使用母语,禁止回回人内部通婚,导致第一次汉化。而当时是回回人聚居较多的地方,他们为了逃避这个政策,开始外迁。今天西安自称南京祖籍的回民占总数的三分之一。而北京也有相当部分回民自称祖籍南京。回回话在这个时期,除了西域回回人使用,朝廷内设立译书馆,回回馆来培养外交人才。——根据在、爪洼等过的碑文可以发现,一般碑文有三种文字,汉语、波斯文和当地语言。也就是说,当时波斯文是不同语言之间的中介。相当于今日英语的地位。 明朝中叶以后海禁,回回人失去了与母国的联系。万历年间,陕西经师胡开始以汉语讲经,开设经堂教育,以汉语、波斯语和阿拉伯语交杂讲解教义。一时成为榜样,风行全国。到了明末,江南出现了大量的回族知识分子,张行、、刘智的作品风行于四教读书人,开始以儒道释回四教通解天方学。虽然,这些回回大儒精通阿拉伯语、波斯语和汉语典籍,但因为种种原因,这时期回回话的地位进一步的下降了。而回回人的教法与习俗也进一步改变。 到了清代,常志美在山东第三次改革教育,提倡双语教育,即面向经学堂的学生讲授汉文和阿拉伯文,附带讲解波斯文。而在经堂之外,多以汉文和阿拉伯语为主。波斯语地位再次下降。到了清末回回民族觉醒的时候,各地通报的波斯语单词数量看,波斯文与阿拉伯语在回族人口语中仍然大量存在,一般在300—3000不等。 百年之后的今天,伴随着普及性的教育开展,会说“回回话”的人越来越少,单词量也急剧下降。以60和80后两个单位为代表,我曾经做过调查,60后回回人口中的“回回话”词汇量平均为200个,儿80后,基本上低于100,甚至几乎为零。——以至于今天有些不肖子孙,认为没有“回回话”这样的东西,也不想认为自己的民族曾经有过“回回话”,认为单一的汉语就是自己的母语。这些都令人哭笑不得。 不过我们总体上要指出的是,整个回回话的衰落虽然对于回回人迷失自己的来源是一件坏事,但是对于中华民族的融合,对于回回文化的传播是一件好事。我们还是应该辩证地区看待这个问题。我个人主张双管齐下的方式,即一方面继续加强回回人的汉文教育水平,了解先进的科学文化知识,学习民族团结的政策;另一方面,也可以开设兴趣课堂,让那些想学回回话的孩子学习一点波斯语和阿拉伯语基础,不忘民族文化的根本。   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~附录1:什么是河中一带?指锡尔河和阿姆河流域以及泽拉夫尚河流域,包括今乌兹别克斯坦全境和哈萨克斯坦西南部。河中为古代欧亚陆路主商道丝绸之路重要通道。当时的主要民族是波斯人和说波斯语的粟特人、突厥人等。文字内容源自“知乎”网
看到明朝中叶后海禁我就呵呵了,明朝初年就有海禁了,到中叶反而放宽
这个问题尺度太大了吧,个人愚见是伊斯兰的包容性不够强,磨灭了民族意识
中国回族其实主要来源是蒙古西征,后来进攻南宋带回来的西域雇佣军后代。其次是海上丝绸之路带来的商人后代。另外还有部分汉人改信伊斯兰教,建国后被划入回族。
你能确定你的母国来自于那个国家
我就呵呵了,唐朝以来形成的回回,本来就是指信伊斯兰人的一个统称。谁能确定一个由不同民族组的教徒群体有什么自己的语言?别再造什么独立性了,象美国一样,只有族群,没有民族,把个人融入祖国才是正确的。
回回个各个部族的大杂烩,本来就不是一个民族,何来民族语言?就像各个国家的人去了美国都改说英语一样,那样才能交流。
回回回看得我都完型崩坏了,回回应该是个宗教认同为主的群体,不应该一概而论
贴吧热议榜
使用签名档&&
保存至快速回贴R 语言的优劣势是什么?
就一个R和SAS精通程度几乎相同,在两种环境下都做过比较大(moderately big, ~xx Gb)的数据分析,与其他语言环境嵌合(SQL, Perl, etc...)使用过的个人(统计专业人员,非编程专业人员)的感受而言:R的优点:1. 免费... 开源... (这是最重要的一点好不好,也是SAS流行于公司,R流行于研究机构和大学的最主要原因)2. 是专门为统计和数据分析开发的语言,各种功能和函数琳琅满目,其中成熟稳定的一抓一把3. 语言简单易学。虽与C语言之类的程序设计语言已差别很大(比如语言结构相对松散,使用变量前不需明确正式定义变量类型等等),但仍保留了程序设计语言的基础逻辑与自然的语言风格。我这样说可能让人听得云里雾里,但是如果你对SAS或者SPSS有一点点了解,就会明白我的意思了...4. 小... 安装程序只有50Mb左右,比起某些死贵且3个G的付费软件真的是超级迷你小巧玲珑... 因为体积轻便,运行起来系统负担也小。5. 同各种OS的兼容性好。我两台本本一台Windows,一台Linux,都用得很顺手。相比之下,你有见过人在Mac上用SAS吗... 这人是要多么的想不开... =. =6. 因为用的人越来越多,又是开源,有很多配套的“插件”为其锦上添花。比如xtable里有一个函数可以直接将R里的表格导出为TeX格式;另有RStudio的插件让你可以在同一个环境里写TeX跑R并可在你的TeX文件中插入你的R代码,多么的贤良淑德... (这个插件我没用过,不过我同学一天到晚在用)7. 有R GUI和RStudio两种风格供君选择,说实话我觉得这两种风格已经涵括了大多数人的使用偏好... 8. 已经提过了开源,还想再强调一下。各种包和函数的透明性极好,这使得对函数的调整和改良变得非常便利。只需要把源码调出来,自己稍微修改一下就可以了。这种事情放在任何其他统计软件里都近乎奢望。9. 如果你做Bayesian,用R你有OpenBUGS, WinBUGS, JAGS等各种成熟活泼的包裹,很多语言又简单又附带各种预设的plot,你只需调用即可;还可以自己写MCMC。如果你用SAS/SPSS/Stata,你可以... @@? = =bbb10. 漂亮又灵活的图,大家也都已经讲过了。原本不是什么特别突出的长处(有则好,没也没啥),不过现在数据可视化越来越热,也就一跃成为主要优点了。说说缺点:1. 对大文本(text data)处理极差... 或者说data management本就不是R的强项。SAS于R的最大优势之一可能就在于它兼顾了数据分析和数据管理。在SAS里对数据进行各种复杂操作都相对容易,只需要简单的DATA STEP(必要时结合PROC SQL)即可完成;在R里可就真的是千辛万苦... 虽然也有相应的aggregate, merge之类的函数,但是大都不太好用。这也是为什么大家常常把数据(尤其是数据大时)在别的环境下整好/分割好再喂给R。人家术业有专攻,数据管理真是有些难为它了。2. 内存管理和平行处理(parallel processing/programming)都为人诟病。数据小时没有感觉,数据大了就各种报错... =. =3. package的可靠性问题。我第一门完全使用R做作业的课是门统计课,教授已经六十多岁,见过各种统计软件的出生发展和湮没。她同我们说到R时第一句话就是Never use a package before you understand the manual and confirm the validity of the functions. 也就是包裹虽然好,使用需谨慎。主要原因还是在于开源。不常用的package一定要搞清楚函数的用法和核实过输出,不然真的不推荐使用。我个人也是倾向非常用函数尽量自己写,至少错了也容易debug...4. 不得不提的package的版本问题。 就算你确认了包裹的可靠性并熟知了各个变量要怎么用,还是可能掉入潜在的陷阱=. = 讲个真事:去年工作的时候一个项目是使用11年某项目的一个贝叶斯模型分析新的数据。当年写代码的人因为相信末日说两年前就已经辞职环游世界去了,于是我只好独自研读他的代码。第一步,很自然的,就是重复当年的分析结果。这时发现当年他用的一个package和现在的R已经不兼容,于是就下载了这个package的最新版本。结果有一个简单的credible interval怎么都重复不出来... 怎么怎么都重复不出来... 我都快绝望了。最后经各种推理验证,发现这个区别源自于新旧版本的函数内部在对数据排序之后对NaN的不同处理... 而这个小小的修改未在任何地方留下任何文字记录。所以怎么说呢... 很多时候还是写自己的程序靠谱哇...5. 当你跑比较大的simulation,对效率有要求的时候,有时还是不得不用C,这可能是10小时和10分钟的差别,毫不夸张。6. 想不出来乐 =w=大致就是这样。最后,因为不是学计算机出身,文中与编程语言和系统相关的措辞可能不准确或有误用,请程序员们多包涵=)
R,不仅仅是一种语言本文原载于《程序员》杂志2010年第8期,因篇幅所限,有所删减,这里刊登的是全文。简介:R是什么转帖:来自《程序员》上的一篇文章,希望对大家有帮助工欲善其事,必先利其器,作为一个战斗在IT界第一线的工程师,C/C++、java、perl、python、ruby、php、javascript、erlang等等等等,你手中总有一把使用自如的刀,帮助你披荆斩棘。应用场景决定知识的储备与工具的选择,反过来,无论你选择了什么样的工具,你一定会努力地把它改造成符合自己应用场景所需的那个样子。从这个道理来说,我选择了R[1]作为数据挖掘人员手中攻城陷池的那把云梯,并努力地把它改造成自己希望的那个样子。关于R的一个比较准确的描述是:R是一门用于统计计算和作图的语言,它不单是一门语言,更是一个数据计算与分析的环境。统计计算领域有三大工具:SAS、SPSS、S,R正是受S语言和Scheme语言影响发展而来。其最主要的特点是免费、开源、各种各样的模块十分齐全,在R的综合档案网络CRAN中,提供了大量的第三方功能包,其内容涵盖了从统计计算到机器学习,从金融分析到生物信息,从社会网络分析到自然语言处理,从各种数据库各种语言接口到高性能计算模型,可以说无所不包,无所不容,这也是为什么R正在获得越来越多各行各业的从业人员喜爱的一个重要原因。从R的普及来看,国外的普及度要明显好于国内,跟盗版windows的泛滥会影响linux在中国的普及一样的道理,破解的matlab与SPSS的存在也影响了R在中国的使用人群。但在国外高校的统计系,R几乎是一门必修的语言,具有统治性的地位。在工业界,作为互联网公司翘楚的google内部也有不少的工程使用R进行数据分析工作,这里[2]有一个google campus的讲课视频,内容就是用R作为工具来讲述数据挖掘的概念与算法。随着近年来R使用者的增加,关于R的报道也屡有见于报端,如2009年初美国纽约时报就有一篇很好的报道:Data Analysts Captivated by R’s Power[3]。报道中述说了R的发展历史以及由于数据挖掘需求的增长而日益普及的现状,它虽源于S但其发展却远远地超过了S,已经成为高校毕业学生所选用的第二大工具语言,google与Pfizer的员工也介绍了R在自己公司中的应用。此外,报道中google首席经济学家Hal Varian说:R的最让人惊艳之处在于你可以通过修改它来做所有的事情,而你已经拥有大量可用的工具包,这无疑让你是站在巨人的肩膀上工作。以下就R的几个主要应用场景以及我在实践中的经验对这个并不算主流的编程语言作一些介绍。统计计算:R之最强项R从它出生的第一天就是为了做统计计算的,那时它被定义为一个统计计算与作图的工具,虽然发展到现在它已经被赋予了越来越强大的功能,但现在R的开发人员里,还是以各个高校统计系的老师与学生为主,他们自然最了解自己最需要的是什么。在统计计算中,我们常常需要根据样本数据作线性回归,得到一定的规律性,R中实现这个功能十分简单,以下是一个一元线性回归的例子:x &- 1:10y &- x+rnorm(10, 0, 1)fit &- lm(y ~ x)summary(fit)注明一下,R里的“&-”符号意义为赋值,大多数情况下它可以用“=”号来代替,但某些特殊的场合不可以,本文会遵循“&-”这种官方使用的写法。这个例子的前两行准备了两列数据:自变量x与因变量y,第三行的函数lm即根据提供的样本数据进行线性回归计算,得到的模型结果可以用第四行打印出来。函数lm除了可以做这种简单的一元线性回归,还可以做多元线性回归,同时返回模型的各种统计量。做统计的往往免不了要做各种各样的图形,R的另一个基本特点就是对图形的强大支持,以下代码展示了一个箱线图的作法,代码来自boxplot函数的manual,该图显示了几列数据的分位数、中值、均值、奇异点等信息及其对比位置。更详细的关于R的作图功能可以参看[4]。boxplot(mpg~cyl,data=mtcars, main=”Car Milage Data”, xlab=”Number of Cylinders”, ylab=”Miles Per Gallon”)机器学习:让你的数据发挥它应有的作用机器学习、数据挖掘领域面临着一些抽象自大量现实生活的问题,比如关联规则挖掘、聚类、分类这三大问题。作为一个完备的工程计算包,R毫无疑问对它们都提供了足够的支持。关联规则问题源于“买了这件商品的顾客还买了什么”这个问题,现在已经广泛应用于客户行为分析以及互联网用户行为分析中。关联规则挖掘领域最经典的算法为apriori,R的第三方包arules[5],就是专门用于做关联规则挖掘的。以下例子需要你已经安装了arules包。library(arules)data &- paste(“item1,item2″,”item1″,”item2,item3″, sep=”\n”)write(data, file = “demo_basket”)tr &- read.transactions(“demo_basket”, format = “basket”, sep=”,”)data(“Adult”)rules &- apriori(Adult, parameter = list(supp = 0.5, conf = 0.9, target = “rules”))最后一行的apriori函数接受一个transaction对象的输入,输出关联规则对象rules,为方便起见,这里用于计算的transaction对象Adult是通过第5行从arules包中现成载入进来的,第2~4行说明了怎么从一个文本文件中读入数据并生成一个transaction对象。聚类算法使用最广泛的高效算法无疑是kmeans,R在其默认载入的stats包中就包含了这个函数,以下是一个来自kmean说明文档的例子:x &- rbind(matrix(rnorm(100, sd = 0.3), ncol = 2), matrix(rnorm(100, mean = 1, sd = 0.3), ncol = 2))cl &- kmeans(x, 2)plot(x, col = cl$cluster)points(cl$centers, col = 1:2, pch = 8, cex=2)代码第1行生成两组两维的正态分布的数据,第一组均值为0,第二组均值为1,两组数据方差都为0.3。第2行对该数据进行聚类,第3和第4行把聚类结果画出来。分类器是模式识别领域的研究主题,也是人类认知活动的中心。多年来的学术研究积累下来很多种类型的分类器,而其中比较靠谱的分类器基本都能在R中找到对应的实现。诸多分类器中以svm最为著名,它也被一些人称为是单分类器的王道。以下是一个利用svm对著名的iris数据集进行分类的过程,运行该例子需要你已经安装了e1071这个包[6]。library(e1071)data(iris)x &- subset(iris, select = -Species)y &- iris$Speciesmodel &- svm(x, y)summary(model)pred &- predict(model, x)table(pred, y)第5行代码调用svm函数,计算由x作为特征y作为类别标签的分类器模型,第7行把模型应用于原数据进行预测。以上例子的演示并非想让各位读者当场学会各个不同领域中这些功能函数的用法,而是一方面展示一些实际的R代码以及它解决问题的方式,另一方面说明了R在这些常见的机器学习领域的积累。在R帮助下去解决这些或许不是我们专业的问题,可以省去我们大量重复造轮子的精力,写出来的代码也足够的短小精悍,节省时间之余也让你对自己算法逻辑的全局一览无余。高性能计算:向量化与并行/分布计算作为现代数据挖掘人员从业者,可能第一个需要关心的是所使用工具的可伸缩性(scalability),具体来说就是在面对大数据量场景时的计算能力。一个拥有高性能计算能力的计算包,首先它必须能充分利用历史上积累下来的那些著名的数值计算包,比如blas、lapack;另一方面,它必须具有良好的可扩展性,即它必须方便开发人员并行化自己的算法,很幸运这些特性R都具备了。类似于R、scilab与matlab那样的工程计算包,通常都会以向量化计算(Vectorization)作为其基本的计算特点(即使python的numpy包也是如此),因为向量化的处理方式是现代大型计算机的基本特性,在计算机领域,无论硬件还是软件,都提供了对向量化的支持,硬件上如Intel的MMX, SSE等指令集都提供了对向量化的支持,更多可以看到wikipedia上的介绍[7]。软件上如blas等著名的计算包,天然地就可以对向量化的命令自动实施并行计算。所谓向量化,是一种特殊的并行计算的方式,相比于一般程序在同一时间只执行一个操作的方式,它可以在同一时间执行多次操作,通常是对不同的数据执行同样的一个或一批指令,或者说把指令应用于一个数组/向量。以下列出R中经常使用几种向量化运算,都是十分稀松平常的操作,但它们本质上都是同时对一批数据应用相同的操作,所以都可以经过向量化处理方式的改造:向量取值,如:V[1:10]向量赋值,如:V[1:10] &- seq(1,10)lapply,类似于python里的map函数:lapply(A, mean)矩阵运算:A + B;A %*% B向量化因其在计算过程中数据的前后不依赖的特点,是并行计算的天然先驱,一个用向量化实现的算法,必定是一个可以高度并行化的算法。正因为这个原因,在利用R写脚本的时候,都要尽量利用向量化的思想来设计自己的算法,尽可能少地使用循环结构。一旦你的程序都是或大都是基于向量化的,除了当时获得来自于计算机软硬件上的优化外,将来某一天数据量膨胀使得计算成为瓶颈时,你就可以极为方便地把原来的算法并行化。正如我们所知,CRAN包括了各种你能想像得到的工具包,当然也有不少并行计算的包,这些包被归纳在R高性能计算相关的包列表中[8]。关于R的向量化及并行计算更详细的内容可以参考我的一篇博客[9]。编写接口与工具包:最有用的包必定是你写的那一个一个开源软件的最强大之处在于大量从业人员的贡献,R最让人激奋,进而选择它作为工作平台的一个重要原因则是庞大而无所不包的的CRAN,在那里几乎能找到所有你能想像得到的与分析研究相关的工具包,可以说丝毫不逊色于perl的CPAN。之所以拥有一个如此强大的第三方支持,一方面在于R本身在统计计算与计算能力方面的支持,另一方面则在于开发一个R扩展是如此地容易,以致于每一个使用R作为自己常用工具的人,都会按捺不住强烈的冲动要写一个自己的包,以满足工作需要。如果自己的这个包感觉写得不错,又为很多人所需要,就可以提交到CRAN。这是造成CRAN如此庞大的原因,但同时也造成了CRAN的软件包良萎不全。但大多数情况下,这些包都会是你的得力助手,特别是那些著名而广为使用的包,如果觉得它们不满足你的需要,那么放心地对它们进行修改吧,因为它们都是开源的。下面展示一个简单的R扩展包的制作过程:1、生成包结构:新建一个目录mypkg,同时作为包名,在mypkg中新建几个目录与文件,mypkg的目录结构如下图所示。R自带的函数package.skeleton可以自动帮你生成这些目录,但它需要一些现成的函数对象或文件作启动,为了顺序说明整个过程,这里没有使用。2、目录说明:必需的是DESCRIPTION文件、man目录和R目录,剩下的都是可选的。DESCRIPTION文件描述包的meta信息;R目录下面存放R脚本文件,里面的函数可导出作为包函数库提供给外部使用;如果要在包里放一些试验数据,可以放在data目录里,常用是以csv格式存放,在R终端里data(***)可以载入,这里留空;man目录是R的帮助文档,有一定的格式要求,这里也留空,生成包时会有一些警告,可以不用管;src存放c/c++/fortran源代码,必须同时放置Makefile或Makevars文件指导编译程序工作,这里留空;zzz.R可以在载入包时做一些事情,这里也留空。3、添加功能:DESCRIPTION文件的内容可以参考任意一个R包对应文件的写法,依样把信息修改成自己相应的信息即可。以下只写一个简单的R函数作为说明,在R目录下添加一个名为helloword.R的文件,文件内容如下:helloword &- function(x, y){return(x*y)}4、安装:在命令行中运行R CMD build mypkg,会编译生成一个mypkg_0.1.tar.gz安装包,其中的数字是我在DESCRIPTION里写的版本号;运行R CMD INSTALL mypkg,就可以把包安装到系统里。5、试验:运行R,进入R终端;library(mypkg),载入刚制作的包;search(),可以看到mypkg包已经被载入;在R终端运行helloworld(2,3),返回6,试验成功。一个具有一定功能的包就这样做好了,是不是很简单。如果有其它需要,只要往R目录或src目录添加文件,然后重新生成并安装就可以了。R与c/c++之间的接口调用也十分方便,限于篇幅,无法更仔细地说明,更详细的内容可以参考我的几篇博客[10-13]。R在中国的发展R在中国的普及现在并不十分地广泛,主要还是学校及研究机构在使用,但近年来随着R的声名鹊起,也已经有越来越多各个领域的工业界从业人员选择R作为自己的工作平台,其中统计之都[14]是一个国内R用户的聚焦地。今年的6月份在人民大学举行了第3届R语言会议,从前三届会议的人员组成来看,R的中国用户群一直呈现较大的增长趋势,用户分布的领域也越来越丰富。第三届R语言会议参会者人来源可以从会议纪要中看到[15]。相信随着数据挖掘广为各个公司接受,R也会走近工业界的各行各业中。R在豆瓣中的应用有一段时间,我一直在寻找介乎于matlab与系统语言(如C, Fortran)的中间物,希望它既能拥有系统语言的高性能,又能方便数据挖掘人员的日常工作,于是我找到了R,这不仅是一门语言,它更是一个理想的计算环境。它一方面方便我对新算法原型的构建、调试、评测,另一方面并没有让我失去系统级语言的计算优势,甚至在实现并行计算方面拥有了更多的选择。现在我使用R编写我们自己的工具包,进行算法原型构造、矩阵运算、并行算法等离线应用,为相似性计算、推荐系统等上层应用提供底层的支持。一个R写的协同过滤推荐的例子最后用一个R实现的协同过滤推荐的例子来结束本文,协同过滤是推荐系统中一个基本的算法,详细内容可以参考这里[16]。由于大量地采用了向量化的计算方式(包括各种矩阵运算),所以算法的实现相当简洁,有可能是史上代码最少的协同过滤推荐引擎 data &- read.table(‘data.dat’, sep=’,', header=TRUE)user &- unique(data$user_id)subject &- unique(data$subject)uidx &- match(data$user, user)iidx &- match(data$subject, subject)M &- matrix(0, length(user), length(subject))i &- cbind(uidx, iidx)M[i] &- 1mod &- colSums(M^2)^0.5MM &- M %*% diag(1/mod)S &- crossprod(MM)R &- M %*% SR &- apply(R, 1, FUN=sort, decreasing=TRUE, index.return=TRUE)k &- 5res &- lapply(R, FUN=function(r)return(subject[r$ix[1:k]]))write.table(paste(user, res, sep=’:'), file=’result.dat’,quote=FALSE, row.name=FALSE, col.name=FALSE)代码我就不细加注释了,有兴趣了解其原理的同学可以看这里[16]。参考:[1] R官方网站[2] Youtube上的GoogleTechTalks,通过R来教学数据挖掘:Statistical Aspects of Data Mining (Stats 202)[3] 纽约时报的报道Data Analysts Captivated by R’s Power[4] R Graphics[5] arules package[6] e1072 package[7] 向量化[8] R高性能计算相关的包[9] 向量化与并行计算[10] R package的最简单制作[11] R与C的接口:从R调用C的共享库[12] R对象结构,用.Call的调用方式更灵活地写R-package[13] 编写R包C扩展的核心指引[14] 统计之都[15] 第三届R语言会议(北京会场)会议纪要[16] 可能是史上代码最少的协同过滤推荐引擎
R有着独一无二神一样的的ggplot(只是效率太低,希望dplyr发布后作者能够用它重构ggplot里的数据处理部分,取代plyr),还有data.table (它的语法实在是太精简了)。当然,R最显著的特点就是其语言特性支持超高的信噪比(这里特指数据整洁、分析时,其他时候相反!),同样的功能在R里所占据的字符数比在Python里少了一半以上。比如R:
a[x&2 & a&-3, list(y, z)]
# (a 是一个 data.table)
a[(a['x']&2) & (a['x']&-3)][['y','z']] # (a 是一个 data frame)
但是,有时候,你需要自己写一些复杂的程序,或者调用一些外部的C, python代码,这个时候就Python 就显示出优势来了。用R写程序极其令人烦躁(很多代码都是为了做些不相干的事情,比如在一个正确的frame里获取一个object的名字 --& 为了能够在使用的时候保持高信噪比,我多次深陷quote, substitute, eval, parent.frame里不能自拔),同时效率也不高(除非你用Rcpp)
作为一个R语言的痴迷者,其强大的作图功能和扩展能力一直让我无法自拔,而且是免费的开源平台;但要编程,学习起来很困难,由于我是学流行病与卫生统计学的,所以我从很多医生那里了解到,对于医生这种有统计需求但是工作又非常忙的人来说,R太不实用了。所以我做了这样一件事,基于R shiny搭建了一个在线的数据分析平台,内核是 R version 3.2.2.
医生只要指定数据类型,这个平台就能自动进行逻辑判断,建议最合适的统计方法。我希望能用这个方法让更多人能享受到R的优点。
优势和劣势都是那些包,用起来强大无比,学起来头疼万分
R语言的优势是免费开源易操作,劣势是慢、慢、慢!
优势基本上就是开源,方便,更新快而且功能多。最大的缺点自然就是慢。另外,yihui的这篇博客文章非常切题地讨论了这个问题:
&- c(简单易学,包多,社区活跃,最近发展不错)劣势 &- c(为什么要用这个 &-符号?作死啊啊啊啊啊,统计学家只对数据严谨对编程范式就像谈过了20次恋爱的男人对新女朋友,包的质量不齐有些包真不敢用,你敢学下C吗,你敢学下Python语言吗,)& 错误于……:6元素是空的#尼玛果然不是python,多打个逗号他会不高兴,但为什么library()可以打也可以不打引号??#我偏用=,偏不&-,我偏用=,偏不&-,我偏用=,偏不&-,我偏用=,偏不&-rest = mean(劣势) - mean(优势)print(rest)& rest, 我运行成功,但我不知道自己是什么
弱:1. R对内存的管理不尽人意2. 不能compile,所以慢强:1. CRAN和R Forge有很多让人眼前一亮的packages,许多学者和许多程序员做出了很多贡献2. 开源,under GNU 3,便宜。。。3. 有很强的user groups。芝加哥每年有Rfinance conference。LA也有很多R group定期交流。建议:如果你对你的computational speed很在意,C是首选,GNU scientific library有很多很强悍的packages。如果你对数据分析,作图感兴趣,R是你的首选。
已有帐号?
无法登录?
社交帐号登录

我要回帖

更多关于 我控制不住我自己 的文章

 

随机推荐