全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2964 8
2015-05-10
  各位大神好,小弟最近在研究kmeans源码,但是发现各个包里面的kmeans算法都会调用c语言算法包(既在r中他们会直接调用一些dll文件),但是这些dll文件我只能查看到里面的函数名,没法查看他们c语言的源码,及其这些函数的使用方法,

1)比如kmeans函数中kmeans (x, centers, iter.max = 10L, nstart = 1L, algorithm = c("Hartiga-Wong", "Lloyd", "Forgy", "MacQueen"
), trace = FALSE) 后面的这参数algorithm的4个值,所代表的方法,分别是那种方法?
2)源码中使用了这个函数 Z <- .C(C_kmeans_Lloyd, x, m, p, centers = centers, k, c1 = integer(m), iter = iter.max, nc = integer(k), wss = double(k))这个.C(C_kmeans_Lloyd,。。。)函数如何使用的?C_kmeans_Lloyd它代表的c子程序是什么呢?如何使用呢,谢谢各位大神指导
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-5-11 11:03:40
顶起来。。。。。。。。。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-5-11 13:22:31
如果你不是专门学编程的,建议你还是别花时间在这上面,这些问题这么复杂,估计要同时精通R和C语言编程和k-means原理的人才懂回答,如果你实在感兴趣,你可以自己去查一下:R中所有的C源代码都在该函数所在的包里面一个叫str的文件夹里,至于.C()这个函数你可以看看R本身的帮助文档,或者是《R语言编程艺术》,另外,这本书里有提到k-means,但应该不是你要的答案,祝你能成功解决
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-5-11 14:48:39
-Batistuta- 发表于 2015-5-11 13:22
如果你不是专门学编程的,建议你还是别花时间在这上面,这些问题这么复杂,估计要同时精通R和C语言编程和k- ...
谢谢,只是对这个好奇,因为知道r是开源的原件我想这个还是应该比较好查,只是自己没找到方法,但是我找的很多函数底层都是调用c,所以我就没法再继续深入这些算法,想自己修改和重写都没法做了,所以还是想看看源码,看看自己能否用r自己的语言写出来
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-5-11 23:10:38
R的底层是C C++ FORTRAN 想象下一个数据框调用某行几乎是秒速 不是这种底层语言 R也没法这么普及
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-5-12 09:28:01
katymeala 发表于 2015-5-11 23:10
R的底层是C C++ FORTRAN 想象下一个数据框调用某行几乎是秒速 不是这种底层语言 R也没法这么普及
你说的很正确,我们研究算法时,还是需要对算法的原理需要有一个清楚的认识,所以我才在这里刨根问底的研究
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群