【问题标题】:how to store a subset of a data frame in another data frame based on some conditions如何根据某些条件将数据帧的子集存储在另一个数据帧中
【发布时间】:2016-03-25 11:15:32
【问题描述】:

我有一个 csv 文件,其中几乎没有基于 2 个城市的观察结果。我添加了一个带有 1 和 2 的城市来区分。我想在不同的城市创建 2 个单独的数据框。 我使用了两种方法。

  1. 子集函数y <- subset(x, x$code == 1)
  2. 索引方法y <- x[x$code ==1, ]

这两个语句都已成功执行,但是当我输入 y 数据框时,我只得到列名作为 0 行的输出。

谁能帮助我使用替代方法或指出我正在使用的方法中的错误?

  Code       city  pickup_datetime pickup_date Hour          Hour range
1    1 Chandigarh 24-03-2016 00:00  24-03-2016    0 00:00:00 - 01:00:00
2    1 Chandigarh 24-03-2016 01:45  24-03-2016    1 01:00:00 - 02:00:00
3    1 Chandigarh 24-03-2016 02:00  24-03-2016    2 02:00:00 - 03:00:00
4    1 Chandigarh 24-03-2016 03:15  24-03-2016    3 03:00:00 - 04:00:00
5    2   Ludhiana 24-03-2016 00:45  24-03-2016    0 00:00:00 - 01:00:00
6    2   Ludhiana 24-03-2016 01:46  24-03-2016    1 01:00:00 - 02:00:00
7    2   Ludhiana 24-03-2016 02:30  24-03-2016    2 02:00:00 - 03:00:00

data.frame':48 obs。 20 个变量: $代码:int 1 1 1 1 1 1 1 1 1 1 ... $ city : 因子 w/ 2 个级别 "Chandigarh","Ludhiana": 1 1 1 1 1 1 1 1 1 1 ... $pick_datetime:因子 w/ 43 个级别“24-03-2016 00:00”,..:1 3 5 7 9 10 11 14 15 18 ... $pick_date : 因子 w/ 1 级别 "24-03-2016": 1 1 1 1 1 1 1 1 1 1 ... $小时:int 0 1 2 3 4 5 6 7 8 9 ... $ Hour.range : 带 24 个级别的因子 "00:00:00 - 01:00:00",..: 1 2 3 4 5 6 7 8 9 10 ...

【问题讨论】:

  • x$code 可能没有等于1 的元素。我们需要查看您的数据以进行进一步调查。
  • 有什么方法可以在这里与您共享数据。
  • 您可以将一些数据粘贴到问题中,或者将其发布到 Github 等数据共享网站并提供链接。
  • @bgoldst 或模拟一个模仿用户数据集的数据集。
  • 您的列名是Code 而不是code

标签: r


【解决方案1】:

我会用

y <- subset(x, Code==1)

因为列名是“代码”而不是“代码”。请注意,subset 中不需要x$Code


如果我们需要为每个“代码”创建两个数据集,我们可以将splitdata.frame 转换为listlist

lst <- split(x, x$Code)

如果需要在全局环境中将其作为单独的 data.frames,

list2env(setNames(lst, paste0("y", names(lst))), 
                       envir= .GlobalEnv)

【讨论】:

    【解决方案2】:

    试试这个:

    y <- subset(x, x$Code == 1)
    
    y <- x[x$Code ==1, ]
    

    【讨论】:

    • 另外你可能想尝试使用 RStudio,它具有变量名的自动完成功能,很难用它来解决这个错误。 :)
    【解决方案3】:

    你可以试试这个:

    y<-data.frame(subset(x[x$Code==1,]))
    

    其中,x--父数据框,y--只有code=1的数据框

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-24
      • 2017-11-10
      • 2013-06-14
      • 2021-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多