Π₯ΠΎΡΡ Ρ ΡΠ΅Π½Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΈΠΏΠΎΠ², Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ if_else()
ΠΈ case_when()
ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°ΡΡ ΠΎΠΏΠ°ΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, Ρ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π»ΡΠΌΠΈ ΠΈ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΎ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠΏΡΠΎΡΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ (Π·Π΄Π΅ΡΡ y
), Π²ΡΡΠ°ΠΆΠ΅Π½Π½ΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΡΠΎΠ² Π² Π΄Π΅Π½Ρ Π² Π½Π΅Π΄Π΅Π»Ρ. ΠΠ΄ΠΈΠ½ΠΈΡΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Ρ
ΡΠ°Π½ΠΈΡΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ x
. Π§ΡΠΎΠ±Ρ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΡΠΎΠ² Π² Π΄Π΅Π½Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ if_else
Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π΅Π»Π΅Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° y
ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ integer
, ΡΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅ΡΡΠΎ Π² ΡΠ°ΠΉΠ»Π°Ρ
dBase, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ read.dbf
.
library(dplyr)
df <- data.frame(x=c("Week", "Day"), y=c(1L, 2L))
mutate(df, z = if_else(x == "Week", y/7, y))
# Result:
Error in mutate_impl(.data, dots) :
`false` has type 'integer' not 'double'
(ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Ρ
ΠΎΡΠ΅Π» Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ case_when
Π²ΠΌΠ΅ΡΡΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ if_else
.)
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ
ΡΡΠΎΠ»Π±ΡΠΎΠ² Π² ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅? Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅Ρ ΡΠΈΡΠΊΠ° ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅Π²Π΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. Π ΡΠ΅Π»ΠΎΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ numeric
ΠΈ integer
Π² R Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠΊΡΡΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΡΠ±ΠΈΠ²Π°Π΅Ρ Ρ ΡΠΎΠ»ΠΊΡ Π½ΠΎΠ²ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠ½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΠ»ΠΎΡ
ΠΎ, ΡΡΠΎ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ ΠΎΠ±ΡΡΡΠ½ΡΡΡ ΡΡΠΎ Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
ΠΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΡΠ΅ΠΉΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ as.numeric(y)
Π²ΠΌΠ΅ΡΡΠΎ y
?
@hadley : ΠΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΡΡΠΎΠ³ΠΈ, Π½Π΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π² ΡΠΈΡΠ»ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π² if_else()
ΠΈ case_when()
?
ΠΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΡΠ΅ΠΉΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ as.numeric (y) Π²ΠΌΠ΅ΡΡΠΎ y?
ΠΠ°, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½ΠΎ ΡΡΠΎ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΎ ΠΈ ΡΠ±ΠΈΠ²Π°Π΅Ρ Ρ ΡΠΎΠ»ΠΊΡ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ².
ΠΠ°, ΡΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ (ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ) Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Π° ββΠ² vctrs.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠ°, ΡΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ (ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ) Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Π° ββΠ² vctrs.