我有各种类型的数据框(数字,整数,日期,字符)。
我想将其子集化为格式为'日期'的列。我该怎么做呢?
mtcars$dates = '2015-05-05'
mtcars$dates = as.Date(mtcars$dates)
#filter just gives me: newdf = mtcars$dates
答案 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.