Sto tentando di utilizzare rowwise
e mutate
con una funzione che può restituire un valore NA, ma sto ricevendo un errore. Si consideri questo esempio forzato (che ovviamente non è un caso per rowwise, ma illustra l'errore):dplyr :: rowwise, mutate e errore NA
questo funziona:
library(dplyr)
data.frame(k=rnorm(10)) %>% mutate(l = ifelse(k > 0, 1, NA))
k l
1 -1.40223573 NA
2 1.47581873 1
3 0.35938746 1
4 0.87240448 1
5 -0.61991535 NA
6 -1.88152820 NA
7 0.25837350 1
8 -0.02250385 NA
9 0.92757943 1
10 0.49023792 1
Ma questo dà un errore:
library(dplyr)
data.frame(k=rnorm(10)) %>% rowwise() %>% mutate(l = ifelse(k > 0, 1, NA))
Error: incompatible types, expecting a numeric vector
più clunkily, 'as.numeric (ifelse (...))' funzionerà anche –
@BenBolker Dal momento che è rowwise, 'mutate (l = if (k> 0) 1 else NA_real_)' funziona anche. Probabilmente, dovrebbe * non * essere in fila, però. – Frank
Grazie, quindi immagino ci sia qualche filosofia alla base di questo (di fila, probabilmente?) Che ha a che fare con il non trasmettere valori quando li metti in un vettore? – blindjesse