R中For循环的返回函数
我有一个数据帧df。我试图执行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 <- 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循环
salappy(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"