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

R: How can I split my data according to type

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

的名字

我设法看到了输出:

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

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

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

returns 空。

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

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

如果您需要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)