预处理表格如下:
name | MAT | Forest_type | trait | mean | sd | number |
李一 | 30 | a | A | 10 | 0.36 | 9 |
李一 | 30 | b | A | 20 | 0.54 | 9 |
李一 | 30 | c | A | 30 | 0.21 | 9 |
李一 | 30 | a | B | 100 | 0.36 | 9 |
李一 | 30 | b | B | 110 | 0.54 | 9 |
李一 | 30 | c | B | 120 | 0.21 | 9 |
李一 | 30 | a | C | 1 | 0.36 | 9 |
李一 | 30 | b | C | 2 | 0.54 | 9 |
李一 | 30 | c | C | 3 | 0.21 | 9 |
王二 | 21 | a | A | 15 | 0.3 | 3 |
王二 | 21 | b | A | 25 | 0.36 | 3 |
王二 | 21 | c | A | 30 | 0.25 | 3 |
王二 | 21 | a | C | 2 | 0.15 | 3 |
王二 | 21 | b | C | 3 | 0.46 | 3 |
王二 | 21 | c | C | 4 | 0.12 | 3 |
张三 | 10 | a | B | 120 | 0.15 | 6 |
张三 | 10 | c | B | 130 | 0.14 | 6 |
赵四 | 5 | a | C | 2 | 0.13 | 9 |
赵四 | 5 | b | C | 4 | 0.12 | 9 |
play <- read_excel("play.xlsx")
play_sorted <- arrange(play, trait)
a <- play_sorted[play_sorted$Forest_type == "a",]
bc <- play_sorted[play_sorted$Forest_type %in% c("b", "c"),]
merged <- left_join(a, bc, by = c("name", "trait"))
write.xlsx(merged, "merged.xlsx", rowNames = FALSE)
读取名为 "play.xlsx" 的 Excel 文件,将其按照 trait
列进行排序,然后选出 Forest_type
列中取值为 "a" 的行,并将其存储在名为 a
的数据框中。接着选出 Forest_type
列中取值为 "b" 或 "c" 的行,并将其存储在名为 bc
的数据框中。最后,使用 left_join
函数将 a
和 bc
两个数据框按照 name
和 trait
列进行连接,得到一个新的数据框 merged
。merged
中每一行对应一个 name
和 trait
组合,并包括了对应森林类型 "a"、"b" 和 "c" 中的 Trees
值。最后,使用 write.xlsx
函数将 merged
数据框写入名为 "merged.xlsx" 的 Excel 文件中,其中 rowNames = FALSE
表示不将行名写入文件。