tidyverse

    1热度

    1回答

    我想将4个变量添加到我的长格式数据集并通过它进行筛选。 基本上我会以5年(2016-2020)开始。 2016年有更多的行相对于其他年份,所以我想总结2016年到2020年作为新的列 - 变量复制到2016年每行的值。在Excel中,我会通过SUMIFS做到这一点。我有点在dplyr管理,但我得到0。 newdt <- dt %>% group_by(time, country, age

    2热度

    3回答

    我试图筛选出NA,NaN和Inf值超出使用dyplr的filter功能tbl的。 诀窍是我只想将过滤器应用于名称包含特定模式的列。该模式是:r1,r2,r3等 我试图结合grep和filter来实现这一目标,但无法使其工作。我目前的代码如下所示: filter_(!is.na(grep("r[1-9]", colnames(DF), value = TRUE)) & !is.infinite(g

    2热度

    1回答

    我有一个数据框,每年的降水量在1997-2016年之间。下面是一个例子: df<- data.frame(year= as.character(c("1997", "1997","1997","1997","1997","1997","1998","1998","1998")),month= as.character(c("1", "1","1","2","2","2","1","1","1"))

    3热度

    4回答

    我对理解%in%有困难。在Hadley Wickham的书“R for data science”的第5.2.2节中,它说:“这个问题的一个有用的缩写是x %in% y。这将选择每一行,其中x是y中的一个值。那么这个例子说明: nov_dec <- filter(flights, month %in% c(11, 12)) 然而,我当我看语法,看样子,应该选择每一行,其中y是x中的值之一,所以

    1热度

    2回答

    我有像这样一个数据帧: df<- data.frame(year= as.character(c("1997", "1997","1997","1997","1997","1997","1998","1998")),season= as.character(c("W", "W","W","D","D","D","W","W")),result= as.character(c("Y", "Y"

    1热度

    2回答

    对于数据集mtcars2 mtcars2 = mtcars mtcars2 = mtcars2 %>% mutate(cyl9=cyl, disp9=disp, gear2=gear) 我希望得到一个新的列是多列的总和,通过使用正则表达式来捕捉模式。 这是一个解决方案,但是这是通过硬编码 select(mtcars2, cyl9) + select(mtcars2, disp9) + sel

    2热度

    1回答

    如果我想创建一个包含观察数字与我CAN数据帧新列, mtcars %>% mutate(i=row_number()) 但ROW_NUMBER()不能与SQL表工作。 mydb <- dbConnect(RSQLite::SQLite(), "") dbWriteTable(mydb, "mt", mtcars) mt.sql=tbl(mydb, "mt") mt.sql %>% mut

    1热度

    2回答

    有没有可以简化这段代码的可用函数?想知道的productsales在特定week到其销售总额的比例 library(dplyr) # Create data.frame df <- tribble( ~week, ~product, ~sales, 1L, "A", 40, 1L, "B", 20, 2L, "A", 50, 2L, "C

    5热度

    3回答

    给定一个data.frame,其中包含一个时间序列和一个或多个分组字段。所以我们有几个时间序列 - 每个分组组合一个。 但有些日期不见了。 那么,用最合适的分组值添加这些日期的最简单的方法是什么(就最“全面的方式”而言)? 通常我会说我会生成一个包含所有日期的data.frame,并对我的时间序列做一次full_join。但是现在我们必须为每个组合值进行分组 - 并填写分组值。 让我们来看一个例子

    0热度

    1回答

    我想在我的数据上使用dplyr的新NSE符号(版本> = 0.6)作为动态filter。比方说,我有以下的虚拟数据集: df = data_frame(x = 1:10, y = 10:1, z = 10 * runif(10)) 如果现在我要当数值大于5,我知道更大的过滤列tofilter = "x"我可以这样做: df %>% filter((!!rlang::sym(tofil