小编Kak*_*oen的帖子

R:每月汇总行数

我制作了一个数据框,其中有一列包含日期和一列包含数值。我希望这个数据框按月进行分组,并汇总每个相应月份其他列中的所有数值。

这是我的数据框示例:

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)

aggregate r dplyr

5
推荐指数
1
解决办法
1427
查看次数

R:使用 mutate 将所有列转换为数字,同时保留字符列

我有一个存储字符串的数据框,其中一些字符串可以解释为数字,但是,它们仍然是类字符。我想自动将所有可以解释为数字的列转换为数字。我可以使用 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)

r numeric dplyr

4
推荐指数
1
解决办法
2091
查看次数

标签 统计

dplyr ×2

r ×2

aggregate ×1

numeric ×1