【发布时间】:2021-06-11 06:01:49
【问题描述】:
我有一个数据集,我想为每个日期执行年龄和性别计数,然后创建一个新的数据框以在之后连接在一起。工作流程是这样的:
age_count <- master %>%
count(Age, Date) %>%
pivot_wider(names_from = Age, values_from = n, values_fill = 0)%>%
arrange(Date)
数据框master 包含其他信息,例如其他列中的性别。 Date 列也不是唯一的,所以 add_count() 不起作用。现在,我通过更改列名(例如 Age 变为 Gender)来重复每个列的代码以提出这些枢轴,但我想知道是否可以通过使用重复类似代码来做到这一点一个循环,以防我想为master 数据框中的更多列做更多相同的枢轴?我主要是对新的 df 分配有问题。
主数据框的 sn-p 如下所示:
Date <- c("5/21","5/21","5/22","5/22","5/24","5/24","5/24")
Age <- c("70","80","70","70","60","40","40")
Gender <- c("M","M","F","M","F","M","M")
master <- data.frame(Date,Age,Gender)
【问题讨论】:
-
您可以将代码包装在一个函数中,然后将其应用于多个列。如果您需要帮助,请分享一些示例数据来测试代码,例如
dput(master[1:5, c("Date", "Age", "Gender")]将为这三列提供前 5 行的复制/可粘贴版本——调整子集以确保它说明了问题。 -
刚刚为主数据框添加了一个小例子。我肯定会感谢一些帮助,因为我不是很精通。谢谢!
-
你想要得到的输出究竟是什么?
-
age_count 的输出应该是第一列“日期”,然后是许多唯一的“年龄”列(例如,在示例主表中将有 4:40、60、70 和 80 .) “日期”列将是唯一的,因此每一行都是一个包含每个年龄组统计的日期。我对 Gender 和其他参数(未在此示例主 df 中显示)做同样的事情 - 一旦我得到这些,我会调用 bind_cols() 来创建一个新的 df,基本上是我指定的每个类别的每个日期的计数