【问题标题】:Read data from CSV in R and visualize it in a Boxplot从 R 中的 CSV 读取数据并在箱线图中将其可视化
【发布时间】:2021-02-17 15:32:47
【问题描述】:

我想从 csv 文件中读取 R 中的一些数据,然后以箱线图的形式进行可视化。 我总是收到一些数据不是数字的错误:Error in mkRespMod(fr, REML = REMLpass) : response must be numeric

这是我在 R 中的代码:

library(tidyverse)
library(lme4)
library(emmeans)
library(multcomp)


# set vector with colors and label
COL <- c("Fallow" = "slategray", "Mustard" = "red3" , "Mix4" = "orchid3", "Mix12"= "orange4")
SHP <- c("Fallow"=21,"Mustard"=22,"Mix4"=23, "Mix12"=24)


# generate data frame with original data
data <- read.csv("C:\\Users\\alex\\data.csv", header=T, sep = ';')



datalm_NEE <- lmer(NEE ~ cc_variant + (1|Date), data=data)
df_NEE <- cld(emmeans(lm_NEE, specs ="cc_variant"), Letters=letters, sort=FALSE)

# Plot for BFS
  fig1 <- ggplot(data, aes(x= cc_variant, y=NEE, fill= cc_variant))+
  geom_boxplot()+
  scale_fill_manual(values = COL, guide=FALSE)+
  geom_text(data= df_NEE ,aes(y=-600,x=cc_variant, label=.group))+
  labs(x="Catch crop variant",  y=expression("NEE (mg CO"[2]~"- C"~m^{-2}~h^{-1}~")"), fill="")+
  theme_myBW

ggsave("Fig1.png", width = 84, height = 70, units = "mm", dpi = 600)

这是我的数据框:

cc_variant       Date        NEE
1      Fallow 2016-10-18   52.31861
2      Fallow 2016-10-19   36.75274
3      Fallow 2016-10-24   34.59082
4        Mix4 2016-10-18 -516.86837
5       Mix12 2016-10-18 -617.11000
6     Mustard 2016-10-18 -182.24568
7        Mix4 2016-10-19 -102.63776
8       Mix12 2016-10-19 -431.55887
9     Mustard 2016-10-19 -139.04121
10    Mustard 2016-10-24 -114.09939
11      Mix12 2016-10-24 -400.21260
12       Mix4 2016-10-24 -175.33208

这就是我创建 csv 文件的方式:

【问题讨论】:

  • 看起来NEE 列中的值包含多个. 字符,导致该列被读取为类型字符,而不是数字。
  • @neilfws 感谢您的回复,我只是从 R Studio 输出中复制了显示的值,我会尝试删除该点并让您知道
  • @neilfws 实际上没有 .在值中,这仅显示在表格中,但是当您单击它时,它将消失
  • class(data$NEE) 说什么?
  • @neilfws [1] "字符"

标签: r dataframe csv plot boxplot


【解决方案1】:

您有分号分隔的数据,因此请使用read.csv2read.csv 和分号作为分隔符。假设不需要第一个点,我们可以删除它们并将数据转换为数字。

data <- read.csv2('data.csv')
data$NEE <- as.numeric(sub('.', '', data$NEE, fixed = TRUE))
lm_NEE <- lmer(NEE ~ cc_variant + (1|Date), data=data)

这修复了第一步,但在下一步失败,cld,不确定那里的问题。

【讨论】:

    猜你喜欢
    • 2013-10-14
    • 2017-12-01
    • 2021-01-25
    • 1970-01-01
    • 1970-01-01
    • 2019-05-15
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多