我制作了一个数据框,其中有一列包含日期和一列包含数值。我希望这个数据框按月进行分组,并汇总每个相应月份其他列中的所有数值。
这是我的数据框示例:
capture.date Test1 Test2 Test3
2016-03-18 0 1 1
2016-03-18 1 1 1
2016-03-20 2 1 1
2016-04-12 1 0 1
Run Code Online (Sandbox Code Playgroud)
我已经尝试过一些代码:
df %>%
group_by(capture.date) %>%
summarise_each(funs(sum))
Run Code Online (Sandbox Code Playgroud)
和:
aggregate(df[2:4], by=df["capture.date"], sum)
Run Code Online (Sandbox Code Playgroud)
但这两个选项都返回按每日日期而不是月份进行汇总的数据框。如何使其按月而不是按日汇总?
期望的输出:
capture.date Test1 Test2 Test3
2016-03 3 3 3
2016-04 1 0 1
Run Code Online (Sandbox Code Playgroud) 我有一个存储字符串的数据框,其中一些字符串可以解释为数字,但是,它们仍然是类字符。我想自动将所有可以解释为数字的列转换为数字。我可以使用 mutate_if 轻松完成此操作,但是它会为每个剩余的字符列生成 NA。我想保留这些栏中的原始信息。
\n# Reproducible example\ndf <- data.frame(Col1 = c("647", "237", "863", "236"),\n Col2 = c("125", "623", "854", "234"),\n Col3 = c("ABC", "BCA", "DFL", "KFD"),\n Col4 = c("PWD", "CDL", "QOW", "DKC"))\n\ndf %>% mutate_if(is.character, as.numeric)\n\n Col1 Col2 Col3 Col4\n1 647 125 NA NA\n2 237 623 NA NA\n3 863 854 NA NA\n4 236 234 NA NA\nWarning messages:\n1: Problem while computing `..1 = across(, ~as.numeric(.))`.\n\xe2\x84\xb9 NAs introduced by coercion \n2: Problem while computing `..1 = across(, ~as.numeric(.))`.\n\xe2\x84\xb9 NAs introduced by coercion …Run Code Online (Sandbox Code Playgroud)