小编Jef*_*ker的帖子

将分组的 tibble 转换为命名列表

我觉得可能有tidyversefor-loop. 从标准 tibble/dataframe 开始,创建一个列表,其中列表元素的名称是一列的唯一值 ( group_by?),列表元素是另一列的所有值。

\n
  my_data <- tibble(list_names = c("Ford", "Chevy", "Ford", "Dodge", "Dodge", "Ford"),\n                    list_values = c("Ranger", "Equinox", "F150", "Caravan", "Ram", "Explorer"))\n  \n# A tibble: 6 \xc3\x97 2\n  list_names list_values\n  <chr>      <chr>      \n1 Ford       Ranger     \n2 Chevy      Equinox    \n3 Ford       F150       \n4 Dodge      Caravan    \n5 Dodge      Ram        \n6 Ford       Explorer\n
Run Code Online (Sandbox Code Playgroud)\n

这是所需的输出:

\n
  desired_output <- list(Ford = c("Ranger", "F150", "Explorer"),\n       Chevy = c("Equinox"),\n       Dodge = c("Caravan", "Ram"))\n\n$Ford\n[1] "Ranger"   "F150"     "Explorer"\n\n$Chevy\n[1] "Equinox"\n\n$Dodge\n[1] "Caravan" …
Run Code Online (Sandbox Code Playgroud)

r purrr tidyverse

9
推荐指数
2
解决办法
3911
查看次数

使用分组日期变量的ggplot(例如year_month)

我觉得这应该是一件容易的事了ggplot,tidyverse,lubridate,但我似乎无法找到一个很好的解决方案.

目标:根据年份和月份创建汇总/汇总/分组数据的条形图.

#Libraries
library(tidyverse)
library(lubridate)

# Data
date <- sample(seq(as_date('2013-06-01'), as_date('2014-5-31'), by="day"), 10000, replace = TRUE)
value <- rnorm(10000)
df <- tibble(date, value)

# Summarise
df2 <- df %>%
  mutate(year = year(date), month = month(date)) %>%
  unite(year_month,year,month) %>%
  group_by(year_month) %>%
  summarise(avg = mean(value),
            cnt = n())
# Plot
ggplot(df2) +
  geom_bar(aes(x=year_month, y = avg), stat = 'identity')
Run Code Online (Sandbox Code Playgroud)

当我创建year_month变量时,它自然变成一个字符变量而不是一个日期变量.我也试过分组,year(date), month(date)但后来我无法弄清楚如何使用两个变量作为x轴ggplot.也许这可以通过将日期安排到本月的第一天来解决......?

r ggplot2 lubridate dplyr tidyverse

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

在执行过程中停止 dplyr/tidyr 链并保存计算进度

我有一个编写的自定义函数,需要一段时间才能在大型数据集上运行,有时会停止运行。我的函数是一个窗口函数(例如cumsum)。如果我停止执行,所有数据都会丢失。有没有办法在数据传输过程中tidyr保存dplyr数据来避免这种情况?

我的数据采用宽格式,并且我在组(例如产品)和许多变量(例如指标)上运行该函数。

   Product Year           a           b           c           d
1        A 2012 -0.54884514 -0.15416417  0.54861146  1.04147041
2        A 2013  1.22642587  1.43655028 -0.71433978  0.23523411
3        A 2014 -1.49161792  0.53356645  0.44964089 -0.01657906
4        A 2015 -0.72283864 -0.30601369 -0.04536668 -1.24809562
5        A 2016  0.41150740  1.42205301  0.59239525  1.82255169
6        B 2012  0.07279991  1.87163670  1.45773252 -1.93302885
7        B 2013  1.02705536 -2.70856122  0.57013708  1.35345098
8        B 2014  1.35513596  0.05818042 -0.41595725 -2.07142883
9        B 2015  0.40750419  0.13024750 -0.89163416  0.44227276
10       B 2016 …
Run Code Online (Sandbox Code Playgroud)

r dplyr tidyr tidyverse

3
推荐指数
1
解决办法
496
查看次数

在dplyr链中重命名vector中的多个列

我有一个数据框,我想重命名几个具有相似名称约定的列(例如,以"X"开头)和/或列位置(例如,4:7).列的新名称存储在向量中.如何在dplyr链中重命名此列?

# data
df <- tibble(RID = 1,Var1 = "A", Var2 = "B",old_name1 =4, old_name2 = 8, old_name3=20)
new_names <- c("new_name1","new_name2","new_name3")

#psuedo code
df %>%
  rename_if(starts_with('old_name'), new_names)
Run Code Online (Sandbox Code Playgroud)

r dplyr

3
推荐指数
2
解决办法
1760
查看次数

黄土复制geom_smooth的置信区间/带

我想获得在黄土功能对每个观测置信区间的上限和下限复制什么ggplot的呢geom_smooth()

library(ggplot2)
ggplot(mtcars, aes(x = mpg, y = hp)) +
  geom_point() +
  geom_smooth(method = 'loess')
Run Code Online (Sandbox Code Playgroud)

ggplot的点和黄土函数

我知道我可以从线性模型获得上限和下限,但这不适用于黄土:

lm_mod <- lm(hp ~ mpg, mtcars)
predict(lm_mod, mtcars, interval="confidence", level=0.95)

loess_mod <- loess(hp ~ mpg, mtcars)
predict(loess_mod, mtcars, interval="confidence", level=0.95)
Run Code Online (Sandbox Code Playgroud)

r machine-learning ggplot2

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

标签 统计

r ×5

dplyr ×3

tidyverse ×3

ggplot2 ×2

lubridate ×1

machine-learning ×1

purrr ×1

tidyr ×1