Tôi đang cố gắng sử dụng rowwise
và mutate
với hàm có thể trả về giá trị NA nhưng đang gặp lỗi. Hãy xem xét ví dụ contrived này (mà rõ ràng không phải là một trường hợp cho rowwise, nhưng minh họa lỗi):dplyr :: lỗi hàng, đột biến và NA
này hoạt động:
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
Nhưng điều này mang lại một lỗi:
library(dplyr)
data.frame(k=rnorm(10)) %>% rowwise() %>% mutate(l = ifelse(k > 0, 1, NA))
Error: incompatible types, expecting a numeric vector
clunkily hơn, 'as.numeric (ifelse (...))' cũng sẽ làm việc –
@BenBolker Vì nó theo hàng, 'mutate (l = if (k> 0) 1 else NA_real_)' cũng hoạt động. Có lẽ, nó sẽ * không * được rowwise, mặc dù. – Frank
Cảm ơn, vì vậy tôi đoán có một số triết lý đằng sau này (theo hàng, có lẽ?) Phải làm gì với các giá trị không đúc khi đưa chúng vào một véc tơ? – blindjesse