我有一个名为“输入”的大型数据集。数据集中的一列是一个名为“受约束”的标志,带有“Y”或“N”。我想创建两个数据集,其中一个是标志为“Y”的行,一个是标志为“N”的行。
我试过:
ifelse(inputs$constrained == "N",unconstrained <- inputs,constrained <- inputs)
但不受约束和受约束的数据集都与输入相同。
我究竟做错了什么?
我有一个名为“输入”的大型数据集。数据集中的一列是一个名为“受约束”的标志,带有“Y”或“N”。我想创建两个数据集,其中一个是标志为“Y”的行,一个是标志为“N”的行。
我试过:
ifelse(inputs$constrained == "N",unconstrained <- inputs,constrained <- inputs)
但不受约束和受约束的数据集都与输入相同。
我究竟做错了什么?
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)
行。