R中For循环的返回函数

R中For循环的返回函数,r,R,我有一个数据帧df。我试图执行for循环以返回所有因子的级别。我已经尝试了下面的代码,但没有得到执行 df <- structure(list(ColA = structure(c(19L, 3L, 12L, 21L), .Label = c("asgfg", "dds", "dfg", "dfh", "dgh", "dghgd", "dgrert", "dgsh", "dsgdfg", "dsgdg", "e", "er", "ewt", "fdg", "fdgd", "fg", "

我有一个数据帧df。我试图执行for循环以返回所有因子的级别。我已经尝试了下面的代码,但没有得到执行

df <- structure(list(ColA = structure(c(19L, 3L, 12L, 21L), .Label = c("asgfg", 
"dds", "dfg", "dfh", "dgh", "dghgd", "dgrert", "dgsh", "dsgdfg", 
"dsgdg", "e", "er", "ewt", "fdg", "fdgd", "fg", "gdfgd", "gdfsh", 
"gf", "gfdg", "gfs", "gh", "ghj", "ghjhg", "gjgj", "gt", "hdsger", 
"hgdhg", "hgj", "hjghj", "jgh", "jyfj", "ret", "rth", "ryuy", 
"sdf", "sdfh", "sfdg", "sgdf", "tyew", "tyu", "tyutyu", "uiuy", 
"yoiy", "yt"), class = "factor"), ColB = structure(c(1L, 1L, 
1L, 1L), .Label = c("A", "B"), class = "factor"), ColC = 1:4, 
  ColD = 2:5), row.names = c(NA, 4L), class = "data.frame"

sa <- names(Filter(is.factor,df))
for (i in sa)
{ res 
res[[i]] <= levels(factor(df[,i]))
return(res) }

df这里使用的是for循环


sa这里使用for循环


sa
lappy(df,levels)
purrr::map(df,levels)
如果您喜欢
purrr
。如果您希望它处理任何类型的数据(不仅仅是因子),您可以执行
lappy(df,unique)
,但请注意,使用
unique
时,因子级别可能不会按顺序显示
lappy
将一个函数(此处为
levels
)应用于列表的所有元素(数据框只是列列表),并在列表中返回结果。它在内部循环,但您的代码不必这样做。谢谢。但在for循环中不可能。我对此很感兴趣:)不管怎样,你的解决方案是有效的。但我正在学习循环,所以如果您愿意,请在
lappy(df,levels)
purrr::map(df,levels)
方面帮助我,我将不胜感激。如果您希望它处理任何类型的数据(不仅仅是因子),您可以执行
lappy(df,unique)
,但请注意,使用
unique
时,因子级别可能不会按顺序显示
lappy
将一个函数(此处为
levels
)应用于列表的所有元素(数据框只是列列表),并在列表中返回结果。它在内部循环,但您的代码不必这样做。谢谢。但在for循环中不可能。我对此很感兴趣:)不管怎样,你的解决方案是有效的。但我正在学习循环,所以如果你能在这方面帮助我,我将不胜感激
res <- 
ColA = "dfg" "er"  "gf"  "gfs"

ColB = "A"