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