我正在尝试根据"2016-04-10"和"2016-04-24"将数据框分组为3个日期范围.
df <- structure(list(date = structure(c(16803, 16810, 16817, 16824,
16831, 16838, 16845, 16852, 16859, 16866, 16873, 16880, 16887,
16894, 16901, 16908, 16915, 16922, 16929, 16936, 16943), class = "Date"),
new = c(1507L, 2851L, 3550L, 5329L, 7557L, 5546L, 6264L,
7160L, 9468L, 5789L, 5928L, 4642L, 8145L, 4867L, 4846L, 5231L,
7137L, 3938L, 3741L, 2937L, 194L), resolved = c(21, 27, 15,
16, 56, 2773, 8490, 8748, 9325, 7734, 10264, 6739, 6110,
9613, 10314, 10349, 7200, 9637, 10831, 11170, 5666), ost = c(1486,
2824, 3535, …Run Code Online (Sandbox Code Playgroud) 我正在使用tidyr包中的fill().fill(df,colname1,colname2,colname3)工作正常,直到我找到一个包含32个变量的数据集.如何在不键入每个名称的情况下填写所有列?
我试过了:
fill(df,colnames(df)),
fill(df,1:32),
fill(df,colname1:colname32).
Run Code Online (Sandbox Code Playgroud)
并产生以下错误:
Error: All select() inputs must resolve to integer column positions.
The following do not:
* colnames(df1)
Error: tinyformat: Not enough conversion specifiers in format string
Error: tinyformat: Not enough conversion specifiers in format string
Run Code Online (Sandbox Code Playgroud) 我有一个汇率数据框。我想划分以“比率”开头的任何列。通过“ rates.AUD”列。
df <- structure(list(timestamp = c(1490659199L, 1490745599L, 1490831999L,
1490918399L, 1491004766L, 1491091173L, 1491177598L, 1491263999L,
1491350399L, 1491436799L), rates.USD = c(1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L), rates.AUD = c(1.311019, 1.306745, 1.303737,
1.306658, 1.31053, 1.31053, 1.310702, 1.314962, 1.321414, 1.321726
), rates.EUR = c(0.920726, 0.924523, 0.929473, 0.935651, 0.937734,
0.937734, 0.937251, 0.937221, 0.936495, 0.937035)), .Names = c("timestamp",
"rates.USD", "rates.AUD", "rates.EUR"), row.names = c(NA, 10L
), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)
我尝试了以下
library(tidyverse)
result <- df %>% mutate_at(vars(starts_with("rates.")), funs(./rates.AUD))
Run Code Online (Sandbox Code Playgroud)
但这并未将函数应用于以“ rates”开头的所有列。rate.USD和rate.AUD发生变化,但rate.EUR保持不变。
我有点困惑,帮助表示赞赏。