もう一度前の2つの質問が続きますが、少し異なる問題です。データの欠落したdplyrを使用
date <- c("2016-03-24","2016-03-24","2016-03-24","2016-03-24","2016-03-24",
"2016-03-24","2016-03-24","2016-03-24","2016-03-24")
location <- c(1,1,2,2,3,3,4,"out","out")
sensor <- c(1,16,1,16,1,16,1,1,16)
Temp <- c(35,34,92,42,21,47,42,63,12)
df <- data.frame(date,location,sensor,Temp)
一部のデータに値がありません。それらはNA
で示されていません。彼らはちょうどデータ期間にはありません。
他の場所を無視して「4」の場所から「out」の場所を差し引いて、日付とセンサーでやりたいと思います。私は正常に私は次のようなエラーError: expecting a single value
を得る欠落日付でデータの
df %>%
filter(location %in% c(4, 'out')) %>%
group_by(date, sensor) %>%
summarize(Diff = Temp[location=="4"] - Temp[location=="out"],
location = first(location)) %>%
select(1, 2, 4, 3)
ただし、次のコードですべてのデータを持っているデータの場所でこれを行っています。これは、dplyr
が不足しているデータポイントに達したときに何をすべきかわからないからです。
いくつかの調査を行っていると、do
のように見えますが、データフレームの値が1つも減算されずに返されます。
df %>%
filter(location %in% c(4, 'out')) %>%
group_by(date, sensor) %>%
do(Diff = Temp[location=="4"] - Temp[location=="out"],
location = first(location)) %>%
select(1, 2, 4, 3)
dplyrをオーバーライドして、それを減算するエントリのいずれかを見つけることができない場合NA
を返すために、それを伝える方法はありますか?
で、私も、あなたのデータに同じエラーが出ます欠落している日付値はありませんが! – Rahul
値がありません – hrbrmstr