繁体   English   中英

如何根据某些条件将数据帧的子集存储在另一个数据帧中

[英]how to store a subset of a data frame in another data frame based on some conditions

我有一个csv文件,其中基于2个城市的观测很少。 我添加了一个城市,分别为1和2。 我想在不同的城市创建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磅。 20个变量中的每一个:$代码:int 1 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 ... $ ickup_datetime:具有43个级别的因子“ 24-03-2016 00:00”,..:1 3 5 7 9 10 11 14 15 18 ... $ pick_datedate:具有1个级别的因子“ 24-03-2016” :1 1 1 1 1 1 1 1 1 1 ... ...小时:整数0 1 2 3 4 5 6 7 8 9 ... $小时。范围:具有24级的因子“ 00:00:00-01: 00:00“,..:1 2 3 4 5 6 7 8 9 10 ...

尝试这个:

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

y <- x[x$Code ==1, ]

我会用

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

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


如果我们需要为每个“代码”创建两个数据集,我们就可以splitdata.framelistdata.frame秒。

lst <- split(x, x$Code)

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

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

您可以尝试以下方法:

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

其中,x-父数据帧,y-仅代码= 1的数据帧

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM