【问题标题】:R markdown knitting error no tidyselect variables selectedR markdown knitting error no tidyselect variables selected
【发布时间】:2020-02-05 00:38:06
【问题描述】:

我正在尝试将我的代码编入一个 html 文件;但是,当文件到达包含函数pivot_longer() 的代码行时,会出现错误(see error here)。我将在下面附上我的代码。有什么建议么? dataset (.csv file)

library(ggplot2)
library(dslabs)
library(dplyr)
library(tidyr)
library(tidyverse)
dt <- read.csv("~co2-2019.csv", stringsAsFactors = FALSE)
dt[,i] <- apply(dt[,i], 2, function(x) as.numeric(as.character(x)))
dt.long <- pivot_longer(dt, -year, names_to = "month", values_to = "co2")
dt.long <- mutate(dt.long, month = factor(month, levels = month.abb))
dt.long <- group_by(dt.long, year, month) %>% summarize(mean_co2 = mean(co2, na.rm = TRUE))
ggplot(dt.long, aes(x=month, y=mean_co2, group = year))+ggtitle("Average Annual CO2 Levels at Mauna Loa Observatory")+geom_line()+labs(x="Month", y = "Average CO2 Level")

【问题讨论】:

  • 如果dt 不包含名为year 的列,就会出现这样的错误。我没有下载你的数据,但如果你在问题中发布前几行(dput 是最好的方法,dput(droplevels(dt[1:10, ])),我很乐意看看。

标签: r r-markdown knitr tidyverse tidyr


【解决方案1】:

我不确定,你想用 line 执行什么:

dt[,i] &lt;- apply(dt[,i], 2, function(x) as.numeric(as.character(x)))

但我想,您正在尝试将 Jan 和 Feb 列转换为数字,这将被第一个命令读取为 char,如果是这样,请使用:

dt[,2:3] &lt;- apply(dt[,2:3], 2, function(x) as.numeric(as.character(x)))

仅显式转换这两列。修改后尝试编写代码,应该会成功生成 html。

我建议使用str(dt) 来检查哪些列已被读取为什么类型。

【讨论】:

    猜你喜欢
    • 2013-05-29
    • 1970-01-01
    • 2015-07-21
    • 2022-12-01
    • 2019-04-05
    • 1970-01-01
    • 2016-08-31
    • 2020-03-28
    • 1970-01-01
    相关资源
    最近更新 更多