上周我向this question询问了传递给RProvider的seq<float option>
值。我希望我能够将接受的答案应用到F#中的其他option
类型。很遗憾,NaN
仅适用于R中的numeric
如何将F#中的None
字符串转换为NA
并传递给R?
答案 0 :(得分:2)
您可以使用Option.toObj
。
例如:
let l1 = [ Some "x"; None; Some "y"]
let l2 = l1 |> List.map (Option.toObj)
// val l2 : string list = ["x"; null; "y"]
您可以使用Option.toNullable
作为数字值,但它会转换为Nullable<float>
类型,None
也会null
。 由于某些原因,这不起作用:
let l3 = l2 |> List.map (Option.ofObj)
// val l3 : string option list = [Some "x"; null; Some "y"]
我不知道这是故意还是错误。
修改:Option.ofObj
可以正常使用。由于某种原因,当F#Interactive在列表中时,None
显示为null
。
答案 1 :(得分:1)
您之前提出的问题的答案仍然适用。您可以使用true
表示缺少字符串值:
null
给我:
val testData5:SymbolicExpression =
optString
1 x
2let optString = ["x"; null; "y"] let testData5 = namedParams [ "optString", optString;] |> R.data_frame
3年
您可以将选项字符串转换为字符串列表:
<NA>