R语言向量_使用all()和any()
来源:互联网 发布:考研单词背诵软件 编辑:程序博客网 时间:2024/06/08 16:14
> x<-1:10
> any(x>8)
[1] TRUE
> any(x>88)
[1] FALSE
> all(x>88)
[1] FALSE
> all(x>0)
[1] TRUE
比较简单,不一一做解释
扩展案例:寻找连续出现1的游程
案例描述:一个向量由0和1构成,现在要找到连续出现1的游程,比如对于一组向量(1,0,0,1,1,1,0,1,1)长度为3的游程(连续出现1出现三次)从第4索引开始,长度为2的游程从第4,5,8开始,那么函数返回的结果就应该是(4,5,8)
存在脚本文件(b.R)里面的代码:
findruns<-function(x,k){
n<-length(x)
runs<-NULL
for(i in 1:(n-k+1)){
if(all(x[i:(i+k-1)]==1))
runs<-c(runs,i)
}
return(runs)
}
控制台里面的代码如下:
> source("b.R")
> y<-c(1,0,0,1,1,1,0,1,1)
> findruns(y,3)
[1]4
> findruns(y,2)
[1] 4 5 8
> findruns(y,6)
NULL
这个算法还有其他的书写方法,请参考其他资料
扩展案例:预测离散值时间顺序
1代表有雨,0代表没有雨,已经知道最近几天是否下雨,来推测明天是否有雨,我们一般用K填的天气记录来预测明天的天气,如果有k/2天下雨,就认为明天会有雨,但是k到底选多少天比较好呢?采取变换不同的k值,看看效果如何。假设有500天的数据,先取k=3,将得到的值与真实值比较,然后取k等于其他值,看看到底哪一个比较好
脚本文件(c.R)里面的数据
preda<-function(x,k){
n<-length(x)
k2<-k/2
pred<-vector(length=n-k)
for(i in 1:(n-k)){
if(sum(x[i:(i+(k-1))])>=k2)
pred[i]<-1
else
pred[i]<-0
}
return(mean(abs(pred-x[(k+1):n])))
}
控制台的代码
> source("c.R")
> preda(c(0,1,1,1,0,1,0,0,1,0,1,1,0),3)
[1] 0.5
先理解脚本文件里面的返回值,pred-x[(k+1):n]用预测的值(向量)减去真实值(向量)得到的向量会是只包含1,0,-1三个数的向量,然后取绝对值(abs),然后算平均(mean),平均值越大则预测越不准确(1和-1越多)。
控制台输进去的是一个向量和k的值,通过改变不同的k的值,来确定一个使得预测最准确的k值。
这个算法同样有其他简单的方法,请参考其他相关资料。
- R语言向量_使用all()和any()
- R语言向量_标量、向量、数组和矩阵
- R语言向量_筛选
- R语言向量_向量符号化
- R语言向量_测试向量相等
- R语言向量_声明和循环补齐
- python中any()和all()如何使用
- R语言向量_常用的向量运算
- R语言向量_向量元素的名称
- python any和all
- R语言中使用支持向量机
- R语言向量_向量化的ifelse()函数
- R语言:if-else条件判断及any、all、na.omit使用方法
- all 、any 、some的使用
- R语言基础-向量
- R语言基础:向量
- R语言字母向量
- R 语言向量详解
- R语言向量_常用的向量运算
- ZOJ 3607 Lazier Salesgirl (贪心,模拟)
- ASP.NET网站中Excel访问拒绝
- 关于 WebBroker 无法读到 Request.ContentFields.Values['AName'] 内容的问题
- Laravel邮件发送
- R语言向量_使用all()和any()
- C++中关于Windows窗口句柄的相关接口
- Git1--git是什么[开源版本控制系统;软件配置管理工具]
- Problem 1057 ab
- 我的css生涯2
- Leetcode 242. Valid Anagram
- 小白C语言写高精度算法(加法)
- java中时间格式的转换
- 【杂文】cumt春季chino组队练习赛