我有一个名为
nestle
的数据框,我必须找到两个指定日期(例如 01-01-2010 和 01-01-2015)之间的列标题销量的销量。日期作为因素给出,我已使用 as.Date
语法将它们转换为日期。我试图使用 - 进行子集化
vol1 <- nestle(nestle$Volume >= "01-01-2010" & nestle$Volume <= "01-01-2015")
它给出了一个错误,说
找不到功能“雀巢”
我是 R 新手,正在努力学习。
我的问题的第二部分是,如果我想在 R 中对两列进行子集,即第一列和第六列,我应该怎么做?
如果它们是连续的,即,如果它们是从 3 到 6,我知道该怎么做。我尝试了相同的方法,但显示错误。
提前致谢。
我有点怀疑
Volume
列包含日期,通常它应该被称为“sales_date”之类的东西。
对于日期/时间操作
lubridate
库非常方便
# Simulation of data.frame w/10000 rows
set.seed(123)
library(lubridate)
NESTLEIND.NS <- data.frame(sales_date = as_date(sample(10000, replace = TRUE) + 10000),
matrix((1:10000) * 5, ncol = 5),
Volume = 10 * abs(rnorm(10000)))
nestle <- NESTLEIND.NS
# Date subsetting
nestle_date <- nestle[nestle$sales_date >= dmy("01-01-2010") &
nestle$sales_date <= dmy("01-01-2015"), ]
# check result
str(nestle_date)
# Column subsetting
nestle_column <- nestle[, c(1, 6)]
# Check result
str(nestle_column)