我在SO閱讀this question,想知道是否有任何方法以矢量化的方式使用is.numeric。重點是,如果你有一個矢量化的方式來檢查一個變量是否是數字,那麼任何依賴於變量的函數都可以被矢量化。否則,它不能被矢量化。是否有矢量化的方式來使用is.numeric?
回答
按照評論:
如果你正在尋找測試與as.numeric一個data.frame列,使用apply
> dat <- data.frame(v1=1:5,v2=letters[1:5],v3=rnorm(5),v4=c(1,2,'c','d',5))
> sapply(dat,is.numeric)
v1 v2 v3 v4
TRUE FALSE TRUE FALSE
或者,多種,你可以使用colwise
從所述plyr包:
> colwise(is.numeric)(dat)
v1 v2 v3 v4
1 TRUE FALSE TRUE FALSE
'plyr'軟件包有一個'numcolwise'函數,可以自動將任何函數應用於數據框中的數字列。 – Ramnath 2012-01-30 19:43:41
這應該得到所需的結果:
rep(is.numeric(x), length(x))
然而,給定一個混合列表:'x <-list('a',2,'c',4)'這將產生一個所有'FALSE'的向量,因爲'is.numeric(x)'是'FALSE' 。 'lapply(x,is.numeric)'給出了預期的結果。 – Justin 2012-01-30 15:50:20
@Justin:我期待輸入是一個單一的「變量」,我把它當作一個原子向量。對於問題措辭的不同解釋,你的方法可能(1)適用。 – 2012-01-30 15:53:04
- 1. Python化的方式來創建矢量
- 2. R /使用矢量化來檢查列中是否存在df
- 3. Z3使用什麼方法來解決無量化位元矢量公式(QF_BV)?
- 4. 有沒有一種更加矢量化的方式來沿軸執行numpy.outer?
- 5. 是否有可能使此矢量化MATLAB代碼更快?
- 6. 是否有正確和錯誤的方式來格式化CSS?
- 7. 使用iomanip格式化矢量輸出
- 8. 是否有刪除所有交易的矢量化方式,但是每個客戶ID的最近N?
- 9. 以矢量化方式查找值
- 10. 是否有向量化的方式來計算sympy中的漸變?
- 11. 優雅的方式來檢查PETSc矢量/矩陣是否已被破壞?
- 12. 是否可以使用SSE爲此嵌套進行矢量化?
- 13. 有效的方式來分割時間numpy的矢量自動
- 14. 是否有android的3d矢量類?
- 15. 矢量化方法,而不是使用循環
- 16. 是否有更容易的解決方案來創建圖形,而不是使用可縮放矢量圖形?
- 17. 是否有方便的程序化方式來創建Google plus測試用戶
- 18. 如何矢量化方程?
- 19. 使用mapply來替換矢量中的模式替換tm中的矢量
- 20. 是否有任何的方式來傳遞變量rememberForever回調?
- 21. 是否有可移植的方式來修改環境變量?
- 22. 是否有更簡潔的方式來使用JavaScriptSerializer.Deserialize(json)?
- 23. 是否有矢量化並行max()和min()?
- 24. 矢量初始化矢量
- 25. 有沒有一種矢量化的方式來操作MATLAB中每列不同數量的值?
- 26. 在數據庫中是否有標準的矢量信息存儲方式?
- 27. 是否可以矢量化R中矢量元素的順序更新?
- 28. 如何使用兩個矢量變量來格式化打印語句?
- 29. 我如何驗證我的代碼是否是矢量化的?
- 30. 是否適用於非矢量化的情況,反之亦然?
'is.numeric'是矢量化的......你能舉一個你正在想什麼的例子嗎? – 2012-01-30 14:44:14
我假設提問者認爲'is.numeric(1:5)'應該給一個TRUE 5長的向量而不是一個TRUE。所以像'sapply(1:5,is.numeric)' – Justin 2012-01-30 14:51:16
@Justin:啊,那麼答案是「否」。您不能在原子向量中混合類型,因此爲向量中的每個元素返回「TRUE」或「FALSE」值都是多餘的。你可以在列表中混合類型(這是data.frame是什麼),這就是你應該使用'sapply'解決方案的地方。 – 2012-01-30 14:58:20