&引用;R代表数据科学“;书(韦翰)。无法复制示例
我正在学习H.Wickham的数据科学R,但我无法让那本书中的代码片段起作用。 我参考了本书的第节和下图。 我从书中复制并粘贴了代码的一部分,但它没有按预期工作&引用;R代表数据科学“;书(韦翰)。无法复制示例,r,tidyverse,R,Tidyverse,我正在学习H.Wickham的数据科学R,但我无法让那本书中的代码片段起作用。 我参考了本书的第节和下图。 我从书中复制并粘贴了代码的一部分,但它没有按预期工作 library(tidyverse) library(forcats) by_age <- gss_cat %>% filter(!is.na(age)) %>% group_by(age, marital) %>% count() %>% mutate(prop = n / sum(
library(tidyverse)
library(forcats)
by_age <- gss_cat %>%
filter(!is.na(age)) %>%
group_by(age, marital) %>%
count() %>%
mutate(prop = n / sum(n))
ggplot(by_age, aes(age, prop, color = marital)) +
geom_line(na.rm = TRUE)
库(tidyverse)
图书馆(供猫用)
按年龄%
过滤器(!is.na(年龄))%>%
按年龄、婚姻状况划分的组别%>%
计数()%>%
变异(prop=n/和(n))
ggplot(按年龄、不良事件(年龄、道具、颜色=婚姻))+
几何线(na.rm=真)
即使我在mutate()
之前使用ungroup()%%>%%
,它也会绘制一些东西,但不会绘制书中的内容(略有不同的模式)
如果有人能解释这一悖论,我将不胜感激
主要问题是在我的例子中,prop
都等于1。结果,我在绘图上只得到了一条水平线
谢谢大家!
tidyverse
版本:1.1.1
R版本3.4.1(2017-06-30)
平台:x86_64-w64-mingw32/x64(64位)
在Windows 7 x64(build 7601)Service Pack 1下运行这看起来是一个相当简单的代码问题。是的,它可能应该由哈德利和他的同事来修复,但这不是什么大问题 如果您开始在控制台中按年龄打印
,您应该会看到:
# A tibble: 351 x 4
# Groups: age, marital [351]
因此,TIBLE根据年龄
和婚姻
进行分组。这意味着count()
和随后的sum(n)
(在mutate
中)都返回相同的值,因为sum
仅在组上使用一个值进行计算,即sum(n)==n
-->prop==1
您使用ungroup()
的方法是正确的,但是,所需的计算是每个年龄段的每个婚姻状况的比例。因此,在计数
和变异
之间添加一个组(年龄)
,你就是黄金
by_age <- gss_cat %>%
filter(!is.na(age)) %>%
group_by(age, marital) %>%
count() %>%
group(age) %>%
mutate(prop = n / sum(n))
ggplot(by_age, aes(age, prop, color = marital)) +
geom_line(na.rm = TRUE)
按年龄划分%
过滤器(!is.na(年龄))%>%
按年龄、婚姻状况划分的组别%>%
计数()%>%
组(年龄)%>%
变异(prop=n/和(n))
ggplot(按年龄、不良事件(年龄、道具、颜色=婚姻))+
几何线(na.rm=真)
结果:
这似乎是代码中一个相当简单的问题。是的,它可能应该由哈德利和他的同事来修复,但这不是什么大问题
如果您开始在控制台中按年龄打印,您应该会看到:
# A tibble: 351 x 4
# Groups: age, marital [351]
因此,TIBLE根据年龄
和婚姻
进行分组。这意味着count()
和随后的sum(n)
(在mutate
中)都返回相同的值,因为sum
仅在组上使用一个值进行计算,即sum(n)==n
-->prop==1
您使用ungroup()
的方法是正确的,但是,所需的计算是每个年龄段的每个婚姻状况的比例。因此,在计数
和变异
之间添加一个组(年龄)
,你就是黄金
by_age <- gss_cat %>%
filter(!is.na(age)) %>%
group_by(age, marital) %>%
count() %>%
group(age) %>%
mutate(prop = n / sum(n))
ggplot(by_age, aes(age, prop, color = marital)) +
geom_line(na.rm = TRUE)
按年龄划分%
过滤器(!is.na(年龄))%>%
按年龄、婚姻状况划分的组别%>%
计数()%>%
组(年龄)%>%
变异(prop=n/和(n))
ggplot(按年龄、不良事件(年龄、道具、颜色=婚姻))+
几何线(na.rm=真)
结果:
对我有用。你使用的是什么版本的软件包?你得到了什么?尝试运行tidyverse\u update()
>packageVersion(“tidyverse”)“1.1.1”。不幸的是,tidyverse\u update()没有帮助。适合我。你使用的是什么版本的软件包?你得到了什么?尝试运行tidyverse\u update()
>packageVersion(“tidyverse”)“1.1.1”。不幸的是,tidyverse\u update()没有帮助。