首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

R日期向量上的setdiff函数导致奇怪的结果

setdiff函数是R语言中用于计算两个向量的差集的函数。它返回在第一个向量中出现但在第二个向量中没有出现的元素。

然而,在处理日期向量时,setdiff函数可能会导致一些奇怪的结果。这是因为日期在R中被存储为数字,表示从1970年1月1日起的天数。当我们使用setdiff函数比较两个日期向量时,它实际上是在比较这些数字,而不是日期本身。

这可能导致一些意外的结果,因为日期向量中的数字可能会受到浮点数运算的影响。例如,如果我们有一个日期向量A包含日期1和日期2,另一个日期向量B只包含日期1,我们期望使用setdiff(A, B)得到日期2。然而,由于浮点数运算的精度问题,setdiff函数可能会返回一个非常接近日期2的数字,而不是确切的日期2。

为了避免这种奇怪的结果,我们可以使用其他方法来处理日期向量的差集。一种方法是将日期向量转换为字符向量,然后使用setdiff函数进行比较。另一种方法是使用日期相关的函数,如dplyr包中的anti_join函数或data.table包中的setdiff函数,这些函数可以更好地处理日期向量的差集。

总结起来,当处理日期向量时,使用setdiff函数可能会导致奇怪的结果。为了避免这种情况,可以考虑使用其他方法或使用日期相关的函数来处理日期向量的差集。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

R 和 RStudio 安装及 R Profile 配置 & 爬取 CRAN 所有 R名称、发布日期和标题

,事实只要用 3.0.0 之后版本都差距不是很大。我电脑 R 版本是 R version 3.6.2 (2019-12-12)。...R 包,例如我电脑安装 R 包有 1479个(截止 2019年12月14号)。...# 这是设定 R 基础绘图系统绘图主题 basetheme::basetheme("brutal") Mac 系统参考: # 把日期环境设置成英文 suppressMessages(suppressWarnings...基于这种设定,使用 R 基础绘图系统绘图结果将会是这样: hist(iris$Sepal.Length) 使用 ggplot2 绘图结果是这样: library(ggplot2) ggplot...一个小练习:爬取 CRAN 所有 R名称、发布日期和标题 可以爬清华镜像源列表:https://mirrors.tuna.tsinghua.edu.cn/CRAN/web/packages

3.5K40

R语言︱词典型情感分析文本操作技巧汇总(打标签、词典与数据匹配等)

如何用函数批量导入文本,并且能够留在R环境之中?循环用read.table,怎么解决每个文本文件命名问题? list函数能够有效读入,并且存放非结构化数据。...nchar(sentence) < 2] #`nchar`函数对字符计数,英文叹号为R语言里“非”函数 代码解读:在进行二级清洗过程中,需要先转化为向量形式,as.vector; 字符数过小文本也需要清洗...stopword$term %in% posneg$term,]#函数`%in%`在posneg$term中查找stopword元素,如果查到了就返回真值,没查到就返回假 #结果是一个和stopword...其他关于主键合并方法有,dplyr包等,可见博客:R语言数据集合并、数据增减 3.2 词库之间相互匹配 1、集合运算(%in%/setdiff())——做去除数据 在2.3三级停用词清理过程中,...向量长度依存于A,会生成一个与A相同长度布尔向量,通过A[布尔向量,]就可以直接使用。 回忆一下,缺失值查找函数,A[na.is(x)],也是生成布尔向量。 详细见2.3停用词删除用法。

3.6K20

R语言基础1

重启R语言,Session——restart R. 查询函数功能:?sqrt() 运行代码:ctrl+enter 脚本注释:# 数据类型和向量 数据类型:数值型、字符型、逻辑型。...(x,y) ###x与y补集 [1] 1 > setdiff(y,x) ###y与x补集 [1] 2 6 #重点 %in% > x%in%y #x每个元素在y中存在吗 [1] FALSE TRUE...c()组合在一起,看输出结果 c(1,"a") c("a",1) c(TRUE,"a") c(TRUE, FALSE, 4) # 说明:运行load("gands.Rdata"),即可得到和使用我准备向量...g和s, # 如有报错,说明你代码写错或project没有正确打开 load("gands.Rdata") # 4.用函数计算向量g长度 length(g) # 5.筛选出向量g中下标为偶数基因名...-2)] # 8.x = 1:10 ;y = c(3:5,11,24)#从全集里面去掉交集 z=union(x,y) z r=intersect(x,y) setdiff(z,r) ###或者 setdiff

30200

R2向量

因此,当需要将字符串表示复数转换为复数类型时,应使用as.complex函数;而对于其他类型数据,应使用as.numeric函数。 #3 #####2.1.向量生成?...TRUE TRUE FALSE TRUE y %in% x #y每个元素在x中存在吗 ## [1] TRUE TRUE TRUE #注释3在R语言中,setdiff()函数用于求两个集合差集...(即除去两个集合中重复元素后仅出现在第一个集合中元素集合),并返回结果。...其基本语法格式如下:复制代码setdiff(x,y)其中,x和y是两个向量或集合,函数返回在x中出现而在 中没有出现元素举个例子,在如下代码中:复制代码x <- c(1,2,3,4,5)y<-c(3,...4,5,6)setdiff(x,y)函数将返回[1]12,因为在x中出现但在y中没有出现数字有1和2需要注意是,这里集合是指向量,并且setdiff()函数只会保留中不重复元素如果想保留所有元素

1.3K00

R语言中交集,并集,补集,差集方法

R语言中计算交集、并集、并集、差集,这些数学概念,这里汇总一下。包括向量操作和数据框操作。可以说是非常全面了。 首先,模拟一下数据:a为1-10数,b为5-15数。...这里,推荐dplyr中函数, library(dplyr) a = 1:10 b = 5:15 a b 1....向量 1. 1 交集(intersect) R函数为:intersect示例图:黄色线区域,就是目标区域 # 交集 intersect(a,b) 1.2 交集(union) R函数为:...union示例图:黄色线区域,就是目标区域 在这里插入图片描述 # 并集 union(a,b) 1.3 补集 R函数为:setdiff示例图:黄色线区域,就是目标区域 # 补集 setdiff...(a,b) setdiff(b,a) a与b补集: b与a补集: 2.

2K21

生信马拉松 Day2

今天学习内容主要是围绕 R 向量展开首先是R数据类型1....向量生成方式(1)用函数 c() (注意是小写c(),大写C()是另外函数)逐一放到一起,例:x=c(1,3,"a")#> x#[1] "1" "3" "a"(2)生成连续数字可以采用 “:”...)#[1] 1 2 5x=c(1,2,5);x#[1] 1 2 5#其中 “;” 使R中两句或多句代码可以写在同一行,否则会报错!!...R 能用函数代替,就不要手动操作,这样才能应对变化情况3. 对两个向量操作首先考虑两个向量长度一致情况(1)比较运算 ,可生成等长逻辑向量,即“==”,“!...如何修改向量某个/某些元素依据向量下标(索引,index)修改x[4] = 40x[c(1,5)]=c(2,4) !!R里面的修改需要经过赋值,没有赋值就相当于没有修改过6.

29610

R语言笔记-1

1,to=4,by=2) #向量中数字随机生成 rnorm(n=3) #向量之间组合 paste0(rep("a",3),1:3) 输出结果: 图片 #向量简单计算 x = c(1,2,3,4)...x+1 log(x) #返回以e为底x对数(自然对数) sqrt(x) #开平方根 #对向量元素进行统计函数 max(x) #最大值 min(x) #最小值 mean(x) #均值 median...class(table(x)) #table()函数输出并非数据框或矩阵,是该函数特殊数据类型 sort(x) #按元素数值大小依次排序,默认从小到大 sort(x,decreasing = F)...开始 x[-4]表示向量除了第4位置其他元素 任何操作需要赋值才能修改变量 向量之间操作 #向量之间运算 x = c(1,2,3,4) y = c(1,3,2,1) x + y #直接进行数学计算...y setdiff(y,x) #取差集,y中去除x # %in%使用 x %in% y #x每个元素在y中存在吗,返回一组逻辑值 y %in% x #y每个元素在x中存在吗,返回一组逻辑值 输出结果

77460

NoteDay1-2

---title: "noteDay1-2"output: html_documentdate: "2023-09-07"---R Markdown##ctrl+alt+i ##R markdown语法快捷键...-0.6788951 0.8172239rnorm(3) #简写## [1] -0.8698553 1.0545989 -0.4180826#没记错的话,小洁老师课堂里提到过,随机数大家每次运行结果极大概率是不相同...)## [1] 5# 这四个函数中文都与重复有点关联,因此放一起记忆x = c(1,1,1,2,2,2,2,3,3,3,3,4,4,4,5)unique(x) #去重复(以这边x为例,返回数字,长度发生变化...4 4 3 3 3 3 2 2 2 2 1 1 1##2.2.6 能用函数搞定事情,就别自己数# 一道课堂练习题:生成向量,内容为:"student2" "student4" "student6"...(x,y) # 差集,x里有,y里没有的## [1] 1 6setdiff(y,x) # 差集,y里有,x里没有的## numeric(0)# 5.补集(小洁老师课堂作业)#补集定义:setdiff

12410

如何使用管道操作符优雅书写R语言代码

本文将跟大家分享如果在R语言中使用管道操作符优化代码,以及管道函数调用及传参注意事项。...而R语言大佬们很早就已经意识到这个问题,开始在R语言中引入管道操作符函数,进行连续传参,实现了内存节省、代码优化需求。...实际在参数传递细节,还有很多需要注意地方: 1、当函数仅需一个必要参数时,则此时函数写法容忍度非常高,相对自由: sample(letters[1:5],size=20,replace=TRUE...最后一次传参时候,左侧传入了一个文本向量,可以像普通场景下向量下标索引一样对观测值进行过滤,此时左侧向量名称可以不用写出, 用一个占位符替代即可(这里.必不可少)。...以上三种方法索引iris前三列并预览,结果是等价。 extract2函数等价于`[[`,用于索引列表中顺序对象。

3K70

R语言基础

R基础概念及数据类型重要提示1.Tab键可以补全函数、变量名、指定数据框行名列名等,能够有效避免错误输入与提高效率2.只有赋值才会使变量发生变化,没有赋值R只是单纯展示出数据3.在R中,Error是唯一代表错误...,大部分Warning可以忽略,但并不是出现了Error才是错误,一定要反复检查代码是否完成了目的,小心暗流4.R中“=”与“<-”均可表示赋值,但是在函数形式参数=实际参数中,仅可用"="R中数据类型分为字符...(6) 其它生成向量函数如rnorm等*以";"连接两句代码会一起执行**函数形式参数可省循环补齐生成向量函数默认有循环补齐,简单而言,一般两个等长向量运算时会一一对应,但若向量不等长,...短向量将会循环以继续与长向量下一位置元素运算运用循环补齐可以节省代码量,但忽视循环补齐也会得到错误结果b=c("a","e","o");blength(b)class(b)se=seq(from=1...,故仅列出intersect(x,y)union(x,y)setdiff(x,y)setdiff(y,x)向量取子集取子集方法包括根据逻辑值取子集与根据元素位置取子集,前者需要生成一个与向量等长逻辑值

1K20

R语言2

2.2对单个向量进行操作(1)赋值( <- alt+—,在R里操作)赋值,=随意写法,是OK=可以代替赋值号 <- ,反过来不行赋值+输出一起实现图片可用名,不建议使用已经占用格式,如c,limma...R语言默认思想英文?...+函数名帮助文档paste0(rep("student",times=length(a)),seq(2,15,by=2))R语言函数思想:能用函数代替,就不要手动去数,除非代码只用一次2.3对两个向量操作...paste0(rep(“x”,3),1:3)参数名称可以省略(times=)paste0(“x”,1:3)假装x为长度为1向量,发生循环补齐,短循环3次补齐长所以有的代码写错,结果正确的话,是返回东西都是一样...,只是没有区分x而已图片完成比完美更重要完美答案很短,但不好理解图片(4)交集、并集、差集,结合返回结果,理解函数intersect(x,y)交集,会去重复union(x,y)setdiff(x,y)仅在

1.2K60

NC单细胞文章复现(一):质控

虽然这篇文献代码都已经上传到Guitub,但是如果自己去跑代码的话,势必出现奇奇怪error, 于是我结合文献methods,对文献进行解读并在作者代码基础,进行翻译和修改,最后重现里面的图片...进行质控,但是这个函数已经更新为perCellQCMetrics,因此我们修改一下,修改后结果跟原来会有略微不同。...由于数据是经过log,所以设置log = TRUE,对数变换提高了对小数值分辨率。isOutlier则可以根据MAD确定数值向量中哪些值是异常值。...可以看到去除低质量细胞后,最后剩下1326个细胞,跟文章结果一模一样。 ? 2.去除低表达量基因 首先定义低表达量基因: 1....HSMM126 <- HSMM126[setdiff(row.names(HSMM126), remove_genes_126), ]#setdiff求两个向量中不同元素,即去除低表达量细胞 HSMM39

3.4K60

R-入门+数据类型 -生信技能树

0-基本信息 R语言版本 4.2.2 Rstudio 用R project管理项目文件,然后新建脚本 只需要管带error提示 1-数据类型 图片 1.1单个数据 字符>数值>逻辑 ####元素数据...##### # 1.2.1.1-使用c()函数组成向量向量只能有一种数据类型 c(2,5,6,2,9) # 2 5 6 2 9 c("a","f","md","b") # "a...差为-3 rnorm(n=3) #3个随机数 rnorm(n=3,mean = 18,sd = 20) #平均18,方差20,3个随机数 # 1.2.1.4-以上函数组合使用...1.2.3两个向量操作 #####1.2.3两个向量操作##### # 注意**【【循环补齐】】** x = c(1,3,5,1) y = c(3,2,5,6) # 1.2.3.1-比较运算 x...-数值 union(x,y) # 取并集时,在结果中元素不会重复 -数值 setdiff(x,y) # 找x\y里面x独有的 -数值 setdiff(y,x)

60160

R语言基础笔记-01(数据类型与向量

引用自生信技能树马拉松课程小洁老师授课内容:R语言基础01生成变量c(1,5,3)1:3rep("x",times=3) #有重复用rep()seq(from=3,to=21,by=3)#有规律序列用...x = c(1,3,5,1)y = c(3,2,5,6)#交集、并集、差集intersect(x,y)#交集union(x,y)#并集setdiff(x,y) #x里有y里没有setdiff(y,x)#...#长度:计数x## [1] 5unique(x) #去重复:去除x里重复值(每一个数据第一次出现为T,第二次出现为F,结果为保留重复值第一次出现)## [1] "1" "2" "3" "4"duplicated...、路径等NA:逻辑值,存在,但不知道; null:不存在一个向量只能有一种数据类型,可以有重复值R语言修改都需要赋值熟练运用proj不是没报错就没问题,需检查目的是否达到脚本打开全是乱码解决方案:图片引用自生信技能树马拉松课程小洁老师授课内容...:R语言基础01

36270

Jelys Note之生信入门class2

=4 T 【用法】 1.用函数返回结果是逻辑值【记录种类】 可以运用逻辑运算,当有多个逻辑条件连接可用&与|或!非 eg.!...("4")--F 【其中注意:数值型数据带“”就是字符,就不是数值了;对于判断是否为数值型数据,返回值就是错【“4”】-F】 【注意:R语言中格式大于内容】 2.转换as族函数实现数据类型转换【批量操作...;文件与数据有区别--文件是在电脑上真实存在,数据框没有真实存在在电脑,只有在R语言才显示】 3.1.2)向量=一串数据,数据框中单独拿出来数据,视为一个整体【可生成、转换向量】 特点:只能有一种数据类型...(3)批量计算可以用向量计算【省掉写循环功夫】、还可进行逻辑比较 符号说明:=赋值,==是否等于 (3.1)对单个向量进行操作【初级函数】&【能用函数运行,就不要人工取结果】 max(x) #最大值...(x,y) 1 3 5 2 union(x,y) 1 1 3 5 6 2 setdiff(x,y) 1 1 6 setdiff(y,x) numeric(0) 4.stdiff函数 5.重点!!

47410

R语言中排序,集合运算,reshape,以及merge总结

不想排版,心情也不好,但是这个知识点很重要,尤其是学习R语言朋友,请仔细看~ 一直以来我都是随便看了点R编程教程,因为我学了一点点C,所以还算有基础,现在基本简单看看教程就能懂一门语言了,区别只是熟练度而已...首先看看排序: 在R中,和排序相关函数主要有三个:sort(),rank(),order()。 sort(x)是对向量x进行排序,返回值排序后数值向量。...rank()是求秩函数,它返回值是这个向量中对应元素“排名”。 order()返回值是对应“排名”元素所在向量位置。...然后我们看看集合运算: 在R里面除了简单对两个向量求交集并集补集之外,比较重要就是match和 %in% 了,需要重点讲讲。...而match(C,B)结果就很不一样了,它返回结果同样与前面的向量等长,但是它并非返回逻辑向量,而是遍历了C里面的一个个元素,判断它们是否在B中出现过,如果出现就返回在B中索引号,如果没有出现,就返回

1.4K110
领券