【发布时间】:2021-07-08 14:02:44
【问题描述】:
我想创建一个循环,对每个变量的因子水平进行汇总拆分。例如,如果我想在“分组”变量中按因子级别进行汇总拆分,我会使用:
df %>%
select(grouping, length, weight) %>%
split(.$grouping) %>%
map(summary)
但是,我不确定如何将其放入一个循环中,以便根据我的数据框中每个感兴趣的变量的因子水平得到一个摘要。
例如,我可以使用以下方法获取数据框第 3 列和第 4 列中变量的summary():
# Dummy data
length = sample(30:60, 10, replace = FALSE)
weight = sample(50:70, 10, replace = FALSE)
grouping = c("A", "A", "B", "A", "B", "A", "B", "B", "B", "A")
colour = c("Blue", "Green", "Green", "Green", "Blue", "Blue", "Blue", "Green", "Blue", "Green")
type = c("Case", "Control", "Case", "Case", "Case", "Control", "Control", "Case", "Control", "Case")
df = data.frame(length, weight, grouping, colour, type)
# Variables to loop
colNames <- names(df)[c(3:4)]
# Summary
for(i in colNames){
# Summary
summary <- df %>%
select(length, weight, .$colNames[i]) %>%
summary()
print(summary)
}
但是当按每个变量的因子水平分割时我不能这样做:
# Variables to loop
colNames = names(df)[c(3,4)]
# Summary
for(i in colNames){
df %>%
select(length, weight, .$colNames[i]) %>%
split(.$colNames[i]) %>%
summary()
}
我认为split(.colNames) 是问题所在,但我不确定如何解决。感谢您的帮助!
【问题讨论】:
-
嗨,你有
df的可重现示例吗?谢谢。 -
@user438383 我更新了我的问题以包含
df的示例。谢谢!