如何格式化植被数据表以在 R 中进行分析

问题描述 投票:0回答:1

我有一张表格,其中列有植物种类和其他因素,以及恢复的、未恢复的和近自然栖息地的行中的地块 ID。我在简化 R 中的分析时遇到问题。

当我遇到问题时,格式化表格以便在 R 中导入的最佳方法是什么?想测试total_plant_coverage_%是否随着years_since_restoration发生变化?或者,如果我想要一个按 site_status(恢复/未恢复/接近自然)分组的序数比例图来测试它们在植物成分上是否不同?您是否建议为 diff 创建多个表?分析?

未来

r
1个回答
0
投票

“最佳方法”总是有争议的,但这是一种至少获得整洁数据集的方法。

读取数据

library(readxl)

df <- read_excel("table.xlsx")

将前 3 个 ID 调整并折叠为非冗余形式,并将行转换为列以获得单独的字符和数字列。

colnames(df)[1] <- "ID"

df <- data.frame(colnames(df[-c(1:3, 12),]), t(df[-c(1:3, 12),]))

现在将第一行的行名称放入列名称

colnames(df) <- df[1,]

df <- df[-1,]

最后调整列的类别,主要对除

as.numeric
之外的所有列使用
1:2

df <- cbind(df[,1:2], Vectorize(\(x) as.numeric(x))(df[,-c(1:2)]))

非强制性,如果您想使用 tibble

tidyverse
中工作(“tibble()”构造一个数据框,带有一些 增强,请参阅
?tibble::tibble
)

library(tibble)

tibble(df)
# A tibble: 3 × 21
  ID    site_status Vascular_plant_cover_…¹ `Bryophyte_cover_%` `Litter_cover_%`
  <chr> <chr>                         <dbl>               <dbl>            <dbl>
1 A1_a  restored                         77                  16                0
2 A1_b  restored                         35                  57                0
3 A1_c  restored                         60                  35                0
# ℹ abbreviated name: ¹​`Vascular_plant_cover_%`
# ℹ 16 more variables: `Bare_ground_%` <dbl>, `Water_cover_%` <dbl>,
#   year_restoration <dbl>, yeas_since_restoration <dbl>,
#   `'Alnus glutinosa'` <dbl>, `'Agrostis canina'` <dbl>,
#   `'Ajuga reptans'` <dbl>, `'Anthoxantum odoratum'` <dbl>,
#   `'Betula pendula'` <dbl>, `'Blechnum spicant'` <dbl>,
#   `'Calamagrostis arundinacea'` <dbl>, `'Calluna vulgaris'` <dbl>, …

注意,数据有 2 个表格合二为一,统计数据和物种。通过这种方法将它们保持在一起。

© www.soinside.com 2019 - 2024. All rights reserved.