将数据集拆分为基于1或0

时间:2017-06-09 20:01:07

标签: r

我有一个我想要分成两个数据集的数据集 - 一个保存在美国发生的事件的所有行,另一个保持发生非美国的所有事件。我有一个专栏来指定US 1,否则为0所以美国的所有行都标记为1,其他所有行都是0.我想将这些列分成两个数据集。以下是我的数据集

的示例
id  variable1  variable2  variable3  Country  US?
1      x           x2         x3        US     1
2      x           x2         x3        US     1
3      x           x2         x3      Mexico   0
4      x           x2         x3        US     1
5      x           x2         x3      Canada   0

我想要的东西看起来像这样,分成两个基于美国的数据集......

US:

id  variable1  variable2  variable3  Country  US?
1      x           x2         x3        US     1
2      x           x2         x3        US     1
4      x           x2         x3        US     1

非美国:

3      x           x2         x3      Mexico   0
5      x           x2         x3      Canada   0

3 个答案:

答案 0 :(得分:0)

使用lapply的选项:

lapply(c(0,1),function(ix) data[data$US? == ix,])

答案 1 :(得分:0)

这是一种方法。假设您的数据存储如下:

policy

您可以将它们分开:

d <- structure(
  list(
    id = 1:5,
    variable1 = c("x", "x", "x", "x", "x"),
    variable2 = c("x2", "x2", "x2", "x2", "x2"),
    variable3 = c("x3",
                  "x3", "x3", "x3", "x3"),
    Country = c("US", "US", "Mexico", "US",
                "Canada"),
    US. = c(1L, 1L, 0L, 1L, 0L)
  ),
  .Names = c("id", "variable1",
             "variable2", "variable3", "Country", "US."),
  class = "data.frame",
  row.names = c(NA,-5L)
)

然后使用您喜欢的对象。

答案 2 :(得分:0)

我们可以将0.47 befindet sich im Array an der Stelle 41. 0.33 befindet sich im Array an der Stelle 32. 1.0 befindet sich im Array an der Stelle 99. 0.52 befindet sich im Array an der Stelle 54. 0.51 befindet sich im Array an der Stelle 48. 0.32 befindet sich im Array an der Stelle 25. 用于splitlist

data.frame