我正在尝试帮助一些朋友创建我们州发现的植物物种的格式化“清单”。
数据如下:
dat<- as.data.frame(cbind(clade = c("Clade x", "Clade x", "Clade x", "Clade y", "Clade y", "Clade z", "Clade z"),
family = c("FAMILY A", "FAMILY A", "FAMILY B", "FAMILY C", "FAMILY C", "FAMILY D", "FAMILY E"),
taxon = c("Juniperus osteosperma", "Ephedra viridis", "Achillea millefolium", "Artemisia tridentata var. tridentata", "Iva axillaris", "Pleiacanthus spinosus", "Packera multilobata"),
life_history = c("tree", "shrub", "forb", "shrub", "forb", "forb", "forb"),
County = c("All counties", "WP", "WP, CK", "EU, WP, WA", "CK", "DG", "DG, CC"),
non.native = c("", "", "Non-native", "", "Non-native", "", "")))
我能够使用以下方法将每个条目所需的列组合成一个字符串:
entry<- paste0(dat$taxon, ". ",
dat$life_history, ". ",
dat$County, ". ",
ifelse(!is.na(dat$non.native), paste0(dat$non.native, "")))
entry
我希望能够将其解析为一个word文档,其中每一行都成为自己的条目,并且条目按进化枝然后按家族进行分组。我还想格式化输出的文本字符串的某些部分(例如,分类单元中除“var.”之外的所有单词都应为斜体)。
我正在寻找的输出将是这样的:
我尝试使用 dplyr 按进化枝和家族进行分组,并使用 for 循环为每行获取单独的“条目”,但似乎无法使 for 循环识别分组。
dat %>% group_by(clade, family) %>%
for (i in 1:nrow(dat))
{
entry<- paste0(dat$taxon, ". ",
dat$life_history, ". ",
dat$County, ". ",
ifelse(!is.na(dat$non.native), paste0(dat$non.native, "")))
entry
}
这会导致错误:“for (. in i) 1:nrow(dat) 中出现错误: 4 个参数传递给 'for',需要 3"
我还阅读了很多有关如何更改图中字体的文档以及有关 Rmarkdown 的文档,但我不知道如何将这些部分组合在一起。
特别给我带来麻烦的部分是:
a)按进化枝和科对条目进行分组
b) 仅格式化文本字符串的某些部分
c) 将其解析为 Word 文档
如有任何帮助,我们将不胜感激。
您可以尝试转换为列表列表,然后写入文件。此代码片段使用函数
capture.output()
将列表写入文件。
#create the clade list
output <- split(dat, dat$clade)
#create the family list
out2 <-lapply(output, function(x){
split(x, x$family)
})
#write the list to file
capture.output(out2, file = "My New File.txt")
没有达到您所期望的整洁输出,而是一个开始。
$`Clade x`
$`Clade x`$`FAMILY A`
clade family taxon life_history County non.native
1 Clade x FAMILY A Juniperus osteosperma tree All counties
2 Clade x FAMILY A Ephedra viridis shrub WP
$`Clade x`$`FAMILY B`
clade family taxon life_history County non.native
3 Clade x FAMILY B Achillea millefolium forb WP, CK Non-native
$`Clade y`
$`Clade y`$`FAMILY C`
clade family taxon life_history County non.native
4 Clade y FAMILY C Artemisia tridentata var. tridentata shrub EU, WP, WA
5 Clade y FAMILY C Iva axillaris forb CK Non-native
$`Clade z`
$`Clade z`$`FAMILY D`
clade family taxon life_history County non.native
6 Clade z FAMILY D Pleiacanthus spinosus forb DG
$`Clade z`$`FAMILY E`
clade family taxon life_history County non.native
7 Clade z FAMILY E Packera multilobata forb DG, CC