我的目标是比较两个向量中的元素。
这是我的第一个Tibble:
Post_Rev
# A tibble: 12 x 2
Fiscal.Quarter.ID Rev
<S3: yearqtr> <dbl>
1 2014 Q1 3889692022
2 2014 Q2 3763028239
3 2014 Q3 4092263526
4 2014 Q4 4865950809
5 2015 Q1 4015879019
6 2015 Q2 4112382310
7 2015 Q3 4247783642
8 2015 Q4 5040074056
9 2016 Q1 4100946981
10 2016 Q2 4021051564
11 2016 Q3 4373665674
12 2016 Q4 5064779447
这是我的第二个载体:
Total_Rev
[1] 3889692022 3763028239 4092263526 4865950809 4015879019 4112382310 4247783642 5040074056
[9] 4100946981 4021051564 4373665674 5064779447
正如我们所看到的,两个向量即Post_Rev中的Rev和Total_Rev是相等的。 我还会告诉你班级类型。
class(Post_Rev$Rev)
[1] "numeric"
class(Total_Rev)
[1] "numeric"
然而,当我运行ifelse时,它会抛出&#34;不等的行&#34;对于某些行:
ifelse(Post_Rev$Rev != Total_Rev,TRUE,FALSE)
[1] FALSE **TRUE** FALSE FALSE FALSE FALSE FALSE FALSE **TRUE TRUE** FALSE FALSE
可能是什么原因?无论如何我能找到原因吗?我很感激你的想法。
我尝试了Wickham的if_else功能:
if_else(Post_Rev$Rev != Total_Rev,TRUE,FALSE)
[1] FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE
我得到了相同的结果。我不确定为什么会这样。
添加dput():
dput(Post_Rev)
structure(list(Fiscal.Quarter.ID = structure(c(2014, 2014.25,
2014.5, 2014.75, 2015, 2015.25, 2015.5, 2015.75, 2016, 2016.25,
2016.5, 2016.75), class = "yearqtr"), Rev = c(3889692022.46776,
3763028239.33219, 4092263526.07502, 4865950809.37372, 4015879019.37871,
4112382310.2044, 4247783641.70853, 5040074055.98503, 4100946980.66123,
4021051564.10049, 4373665674.01029, 5064779446.86354)), .Names = c("Fiscal.Quarter.ID",
"Rev"), row.names = c(NA, -12L), class = c("tbl_df", "tbl", "data.frame"
))
dput(Total_Rev)
c(3889692022.46776, 3763028239.33219, 4092263526.07502, 4865950809.37372,
4015879019.37871, 4112382310.2044, 4247783641.70853, 5040074055.98503,
4100946980.66123, 4021051564.10049, 4373665674.01029, 5064779446.86354
答案 0 :(得分:0)
我想回答这个问题。 r2evans和42现场:
当我们减去数字时,我们发现数字存在差异。
Post_Rev$Rev-Total_Rev
[1] 0.000000e+00 -4.768372e-07 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
[7] 0.000000e+00 0.000000e+00 -4.768372e-07 -4.768372e-07 0.000000e+00 0.000000e+00