专栏首页PPV课数据科学社区【学习】笨办法学R编程(三)

【学习】笨办法学R编程(三)

看到各位对“笨办法系列”的东西还比较感兴趣,我也很乐意继续写下去。今天的示例将会用到数据框(data.frame)这种数据类型,并学习如何组合计算两个向量,以及如何排序。我们将用所学的东西来解决Project Euler的第四个问题,就是找出一个集合中最大的回文数。回文数是指一个像1534351这样“对称”的数,如果将这个数的数字按相反的顺序重新排列后,所得到的数和原来的数一样。开始啦!

# 预备练习 x <- y <- 1:9 data <- expand.grid(x=x,y=y) print(data) z <- data$x * data$y # 一个九九乘法表 z <- matrix(z,ncol=9) set.seed(1) x <- round(runif(10),2) print(x) order(x) x[order(x)[1]] which.min(x) x[which.min(x)] x[order(x)] y <- 1:10 data <- data.frame(x,y) class(data) head(data) data[1,] data[,1] data$x data[order(data$x),] # Project Euler 4 # 在两个三位数字的乘积中,找出最大的回文数 # 先建立一个将数字顺序进行反转的函数 reverse <- function(n) { reversed <- 0 while (n > 0) { reversed <- 10 * reversed + n %% 10 n <- n%/%10 } return(reversed) } # 从大到小搜索回文数 x <- y <- 999:100 data <- expand.grid(x=x,y=y) data$prod <- data$x * data$y data <- data[order(data$prod,decreasing=T),] head(data) value <- data$prod for (i in 1:length(value)) { isequal <- (value[i] == reverse(value[i])) if (isequal) { print(data[i,]) break }} 得到的结果是906609,本例是先将乘积排序后再判断是否回文数,找到的第一个就是答案,所以速度会快一点。如果不用expand.grid函数的话,可以利用嵌套for来组合计算。另外还有一种作法是利用R本身的rev函数,先将数字转为字符,再切开成一串向量,用rev反转后判断。

本文分享自微信公众号 - PPV课数据科学社区(ppvke123)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2014-05-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 从0到1掌握R语言网络爬虫

    引言 网上的数据和信息无穷无尽,如今人人都用百度谷歌来作为获取知识,了解新鲜事物的首要信息源。所有的这些网上的信息都是直接可得的,而为了满足日益增长的数据需求,...

    小莹莹
  • 算法 | 使用sklearn自带的贝叶斯分类器进行文本分类和参数调优

    Part 1: 本篇内容简介 在前一篇文章完整手写一个朴素贝叶斯分类器,完成文本分类,我们使用首先假设在文档中出现的单词彼此独立,利用贝叶斯定理,完成了一个简...

    小莹莹
  • 工具 | 一张图,教你用25种可视化工具如何完成

    散点图真是一个比较神奇的图形,正如它的名字一样,一堆纷乱如麻的圆点,看似无迹可寻却能显示出数据难以显示的内在逻辑关系。很多人称它“万表之王”,它在数据分析师手...

    小莹莹
  • BootstrapTable的列排序怎么搞

    先搞一个table,使用ajax将数据查询出来,然后可以在所有列都加上排序。满足自己的需求。

    别先生
  • 大数据分析:特征工程

    AI之禅
  • 学习笔记 | 基于FPGA的伪随机数发生器(附代码)

    今天是画师本人第一次和各位大侠见面,执笔绘画FPGA江湖,本人写了篇关于FPGA的伪随机数发生器学习笔记,这里分享给大家,仅供参考。

    FPGA技术江湖
  • 员工流动分析和预测

    公司员工,是一家公司成长和发展的关键要素之一。留不住优秀的员工,也就难以打造出卓越的公司。很多公司,比方说,惠普公司,IBM公司等,已经采用数据科学的手段,对内...

    陆勤_数据人网
  • FPGA学习altera 系列 第二十三篇 二进制转BCD

    大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。...

    FPGA技术江湖
  • R分类算法-Logistic回归算法

    逻辑回归 Logistic Regression 所谓LR,就是一个被Logistic方程归一化后的线性回归,可以将非线性的问题转化为线性问题。 优点: ...

    Erin
  • python实现在线翻译

    砸漏

扫码关注云+社区

领取腾讯云代金券