0

我有一个名为“输入”的大型数据集。数据集中的一列是一个名为“受约束”的标志,带有“Y”或“N”。我想创建两个数据集,其中一个是标志为“Y”的行,一个是标志为“N”的行。

我试过:

ifelse(inputs$constrained == "N",unconstrained <- inputs,constrained <- inputs)

但不受约束和受约束的数据集都与输入相同。

我究竟做错了什么?

4

1 回答 1

4
first <- split(inputs, inputs$constrained)[1]
second <- split(inputs, inputs$constrained)[2]

如果你想使用“[”,你可以这样做:

 unconstrd <- inputs[ inputs$constrained == "N" , ]
 constrd <-  inputs[ ! inputs$constrained == "N" , ]

由于 R 处理 NA 条件的方式很诡异,尽管它不会忠实地反映这些行,但第二个选项可能都有“受约束”为 NA 的条目。(我承认我不确定 split 方法对 NA 有什么作用。)我刚刚测试了 split 方法,它可能更好,因为(如subset)它不返回is.na(input$constrained)行。

于 2013-01-02T22:10:53.417 回答