Моя цель - сравнить элементы в двух векторах.
Вот мой первый Тиббл:
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
Как мы видим, два вектора, то есть Rev в Post_Rev и Total_Rev, равны. Я также покажу вам тип класса.
class(Post_Rev$Rev)
[1] "numeric"
class(Total_Rev)
[1] "numeric"
Однако, когда я запускаю ifelse, для некоторых строк выдаются «неравные строки»:
ifelse(Post_Rev$Rev != Total_Rev,TRUE,FALSE)
[1] FALSE **TRUE** FALSE FALSE FALSE FALSE FALSE FALSE **TRUE TRUE** FALSE FALSE
Что может быть причиной? Можно ли как-то узнать причину? Буду признателен за ваши мысли.
Я попробовал функцию Уикхема 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