5
rowwise
とmutate
をNA値を返す関数で使用しようとしましたが、エラーが発生しています。この不自然な例(明らかに行方向の場合ではないですが、エラーを示している)考えてみましょう:dplyr :: rowwise、mutate、およびNAエラー
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
をしかし、これは誤りなります:
をこの作品
library(dplyr)
data.frame(k=rnorm(10)) %>% rowwise() %>% mutate(l = ifelse(k > 0, 1, NA))
Error: incompatible types, expecting a numeric vector
@numeric(ifelse(...))も動作します。 –
@BenBolkerそれは行方向であるため、 'mutate(l = if(k> 0)1 else NA_real_)も機能します。おそらく、それは行方向ではありません。 – Frank
ありがとう、私は、ベクトルの中に値を入れるときに値をキャストしないといけない、これの背後にあるいくつかの哲学があるだろうと推測しています(行方向、おそらく?)。 – blindjesse