【发布时间】:2017-08-17 16:38:34
【问题描述】:
我正在尝试从数据框 (followed this) 中删除一组列,但我得到一个错误作为回报。
具体来说,数据框(NNF.data)的大小为 34233 行 147 列:
[118] "NNF.2015.03.EUR" "NNF.2015.04.EUR" "NNF.2015.05.EUR"
[121] "NNF.2015.06.EUR" "NNF.2015.07.EUR" "NNF.2015.08.EUR"
[124] "NNF.2015.09.EUR" "NNF.2015.10.EUR" "NNF.2015.11.EUR"
[127] "NNF.2015.12.EUR" "NNF.2016.01.EUR" "NNF.2016.02.EUR"
[130] "NNF.2016.03.EUR" "NNF.2016.04.EUR" "NNF.2016.05.EUR"
[133] "NNF.2016.06.EUR" "NNF.2016.07.EUR" "NNF.2016.08.EUR"
[136] "YTD.NNF.Year2005.EUR" "YTD.NNF.Year2006.EUR" "YTD.NNF.Year2007.EUR"
[139] "YTD.NNF.Year2008.EUR" "YTD.NNF.Year2009.EUR" "YTD.NNF.Year2010.EUR"
[142] "YTD.NNF.Year2011.EUR" "YTD.NNF.Year2012.EUR" "YTD.NNF.Year2013.EUR"
[145] "YTD.NNF.Year2014.EUR" "YTD.NNF.Year2015.EUR" "YTD.NNF.Year2016.EUR"
我想要做的是从 136-147 中删除列,或者删除名称中包含 YTD 的列。
我尝试使用
NNF.data[, grep("YTD", names(NNF.data)):= NULL]
但我得到了错误:
Error in `[.data.frame`(NNF.data, , `:=`(grep("YTD", names(NNF.data)), :
could not find function ":="
同样,我试过了
NNF.data[, which(grepl("YTD", colnames(NNF.data))):=NULL]
但又一次,我明白了
Error in `[.data.frame`(NNF.data, , `:=`(which(grepl("YTD", colnames(NNF.data))), :
could not find function ":="
有什么建议吗? 我确保 NNF.data 是一个数据框
> is.data.frame(NNF.data)
[1] TRUE
【问题讨论】:
-
:=适用于data.table对象。您是在使用data.frame还是data.table? -
我不知道 Carles,我正在使用 data.frame。数据框有什么等价物吗?
-
如果有的话,你能发帖作为回答吗?谢谢
-
NNF.data[startsWith(names(NNF.data), "YTD")] <- list(NULL),但是data.table效率更高。