我使用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。
答案 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)