选择日期字段

时间:2016-07-08 14:34:02

标签: r filter attributes subset

我有各种类型的数据框(数字,整数,日期,字符)。

我想将其子集化为格式为'日期'的列。我该怎么做呢?

mtcars$dates = '2015-05-05'
mtcars$dates = as.Date(mtcars$dates)

#filter just gives me:     newdf = mtcars$dates

5 个答案:

答案 0 :(得分:6)

我们可以使用console.log('planId: ' + planId + ' | ' + typeof planId); Output: planId: [ '576df16eed10c2fccbcbd60c' ] | object 循环显示列,获取列的sapply,检查它是否是'日期'并使用该逻辑向量对列进行子集化。

class

答案 1 :(得分:6)

使用Filter的另一种方式:

#make a function that checks for the Date class
is.Date <- function(x) inherits(x, 'Date')
#use Filter to filter the data.frame
Filter(is.Date, mtcars)

答案 2 :(得分:5)

purrr 具有keep功能:

keep(mtcars, ~inherits(.x, "Date"))

~.x编码允许在每列上使用inherits,而无需创建单独的函数或使用匿名函数。

答案 3 :(得分:2)

07-Jul-2016 23:23:50.411 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath 07-Jul-2016 23:24:03.676 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log Initializing Spring root WebApplicationContext 07-Jul-2016 23:24:04.696 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.filterStart Exception starting filter sakai.request java.lang.NullPointerException at org.sakaiproject.util.RequestFilter.init(RequestFilter.java:649) at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260) 允许您在数据框的列上使用谓词。只会选择谓词返回select_if的那些列:

TRUE

答案 4 :(得分:0)

这应该有效:

data(mtcars)
mtcars$dates = '2015-05-05'
mtcars$dates = as.Date(mtcars$dates)
head(mtcars)

v=sapply(mtcars,class) #get the class of each column
datecol=names(v)[v=='Date'] # select the columns having date class
mtcars[datecol] #subset those columns.