R:如何根据类型拆分数据

时间:2015-03-05 18:05:46

标签: r types

我使用R而我有data.frame,其中包含数字和分类变量。 TR是我data.frame的名称。

我设法看到了输出:

for(i in 1:ncol(TR)){  print( is.factor(TR[,i])==TRUE )}

但是,我没有成功将它们放入像vector这样的可用输出中。:

type <-     for(i in 1:ncol(TR)){  print( is.factor(TR[,i])==TRUE )}  

返回NULL。

2 个答案:

答案 0 :(得分:1)

您永远不会向type返回任何内容。 请尝试sapply

type <- sapply(1:ncol(TR), function(col.idx) is.factor(TR[,co.idx]))

答案 1 :(得分:1)

如果您需要根据类型{/ 1> split数据

lst <- lapply(split(colnames(df), sapply(df, class)), function(x) df[x])

list2env可用于在全局环境中创建多个对象。但是,我更愿意在列表中工作

 list2env(setNames(lst, paste0('dat', names(lst))), envir=.GlobalEnv)

 head(datfactor,3)
 #  V2
 #1  A
 #2  B
 #3  C
head(datcharacter,3)
 #  V1
 #1  B
 #2  A
 #3  C

数据

set.seed(24)
df <- data.frame(V1=sample(LETTERS[1:4], 10, replace=TRUE),
 V2= factor(rep(LETTERS[1:3], length.out=10)), V3= rnorm(10), 
 V4=runif(10), stringsAsFactors=FALSE)