如何在R中对一系列数字使用此命令?
PR01 <- Pra_Ruz[grep("-01-", Pra_Ruz$Date), ]
我是说
PR01 <- Pra_Ruz[grep("-01-", Pra_Ruz$Date), ]
PR02 <- Pra_Ruz[grep("-02-", Pra_Ruz$Date), ]
PR03 <- Pra_Ruz[grep("-03-", Pra_Ruz$Date), ]
PR04 <- Pra_Ruz[grep("-04-", Pra_Ruz$Date), ]
....
如果您以可复制的格式提供具有预期输出的数据,则会更容易提供帮助。
将此视为您的数据-
Pra_Ruz <- data.frame(Date = as.Date(c('2012-01-31', '2020-12-28',
'2015-10-11', '2014-04-16', '2016-03-22')), a = 1:5)
Pra_Ruz
# Date a
#1 2012-01-31 1
#2 2020-12-28 2
#3 2015-10-11 3
#4 2014-04-16 4
#5 2016-03-22 5
您可以使用[1-4]
在正则表达式中指定范围
Pra_Ruz[grep("-0[1-4]-", Pra_Ruz$Date), ]
# Date a
#1 2012-01-31 1
#4 2014-04-16 4
#5 2016-03-22 5
另一种选择-
如果这些是日期对象,您可以从中提取月份值,然后进行子集设置。
Pra_Ruz[as.integer(format(Pra_Ruz$Date, '%m')) %in% 1:4, ]
如果您想将数据集拆分为多个单独的数据帧
data <- split(Pra_Ruz, format(Pra_Ruz$Date, '%m'))
names(data) <- paste0('PR', names(data))
list2env(data, .GlobalEnv) #Not recommended, do only if necessary.