2

データフレームを作成しました:

simpleDF<- structure(list(vals = c(NA, NaN, 2)), .Names = "vals", row.names = c(NA, 
-3L), class = "data.frame")


> is.na(simpleDF$vals)
[1]  TRUE  TRUE FALSE
> is.nan(simpleDF$vals)
[1] FALSE  TRUE FALSE

ここで、データフレームを変更して文字列値を含めると、次のようになります。

simpleDF <- structure(list(vals = structure(c(NA, 2L, 1L, 3L), .Label = c("2", 
"NaN", "test"), class = "factor")), .Names = "vals", row.names = c(NA, 
-4L), class = "data.frame")

> is.na(simpleDF$vals)
[1]  TRUE FALSE FALSE FALSE
> is.nan(simpleDF$vals)
[1] FALSE FALSE FALSE FALSE

NaNなぜ認識されなくなったのかわかりませんでしたis.nan()か?確かに説明があるでしょう..

4

1 に答える 1

5

NaNは数値ベクトルでのみ意味をなす値であるため、それが含まれる"NaN"ベクトルのクラスが (明示的または暗黙的に) 数値から文字または係数に変換されると、文字列に変換されます。

vals
# [1]  NA NaN   2
as.character(vals)
# [1] NA    "NaN" "2" 
c(vals, "A")
# [1] NA    "NaN" "2"   "A"  
于 2012-10-19T18:21:41.083 に答える