Tôi đã sau khung dữ liệu:Kiểm tra nếu một biến là một số trong R
> ddf = data.frame(name=c('a','b'), value=c(10,20))
> ddf
name value
1 a 10
2 b 20
tôi cố gắng để có được xx từ DDF sử dụng lệnh sau:
> xx = ddf[ddf$name=='a','value']
> xx
[1] 10
> xx = ddf[ddf$name=='c','value']
> xx
numeric(0)
Làm thế nào tôi có thể kiểm tra nếu xx là một số hợp lệ và không phải là 'số (0)'. Tôi đã thử theo dõi:
> is.numeric(xx)
[1] TRUE
> is.na(xx)
logical(0)
> is.null(xx)
[1] FALSE
> is.logical(xx)
[1] FALSE
EDIT: Tôi phải yêu cầu "xx = ddf [ddf $ name == 'a', 'value']" từ các khung dữ liệu ddf khác nhau. Đôi khi ddf không chứa 'a' và do đó không có giá trị nào được trả về. Tôi muốn phát hiện điều này.
Lưu ý tuy nhiên rằng "số hợp lệ" không phải là một tham số trong 'r'. Điều gì sẽ xảy ra nếu bạn không muốn cho phép các giá trị 'NA' hoặc' Inf'? Hãy chắc chắn rằng bạn biết chính xác những gì bạn cần để kiểm tra! –
Bạn có thể kiểm tra chiều dài của nó –
Tôi đã chỉnh sửa câu hỏi của mình cho chính xác những gì tôi cần. Tôi nghĩ chiều dài (xx)> 0 sẽ là tốt nhất. – rnso